Electronic system with gesture processing mechanism and method of operation thereof

ABSTRACT

An electronic system includes a control unit, configured to identify a first sensor reading for capturing a gesture directed at a display interface using a first range profile; identify a second sensor reading for capturing the gesture directed at the display interface using a second range profile; calculate a blended position indicator based on the first sensor reading, the second sensor reading, or a combination thereof; and a communication interface, coupled to the control unit, configured to communicate the blended position indicator by generating a cursor at the blended position indicator.

TECHNICAL FIELD

An embodiment of the present invention relates generally to anelectronic system, and more particularly to a system with a gestureprocessing mechanism.

BACKGROUND

Modern consumer and industrial electronics, especially display devicessuch as networked-enabled displays, touchscreen displays, curveddisplays, and tablet devices are providing increasing levels offunctionality to support modern life including facilitating userinteractions with electronic devices and appliances. Research anddevelopment in the existing technologies can take a myriad of differentdirections.

As users become more empowered with the growth of interactions betweenusers and devices, new and old paradigms begin to take advantage of thisnew technology space. There are many technological solutions to takeadvantage of these new device capabilities. However, user interactionswith such electronic devices and appliances are often imprecise orinaccurate as a result of deficiencies in devices or systems used totrack and process user gestures associated with such interactions.

Thus, a need still remains for an electronic system with a gestureprocessing mechanism appropriate for interactions between users andtoday's devices. In view of the ever-increasing commercial competitivepressures, along with growing client expectations and the diminishingopportunities for meaningful product differentiation in the marketplace,it is increasingly critical that answers be found to these problems.

Additionally, the need to reduce costs, improve efficiencies andperformance, and meet competitive pressures adds an even greater urgencyto the critical necessity for finding answers to these problems.Solutions to these problems have been long sought but prior developmentshave not taught or suggested any solutions and, thus, solutions to theseproblems have long eluded those skilled in the art.

SUMMARY

An embodiment of the present invention provides an electronic systemincluding a control unit, configured to identify a first sensor readingfor capturing a gesture directed at a display interface using a firstrange profile; identify a second sensor reading for capturing thegesture directed at the display interface using a second range profile;calculate a blended position indicator based on the first sensorreading, the second sensor reading, or a combination thereof; and acommunication interface, coupled to the control unit, configured tocommunicate the blended position indicator by generating a cursor at theblended position indicator.

An embodiment of the present invention provides a method of operation ofan electronic system including identifying, with a control unit, a firstsensor reading for capturing a gesture directed at a display interfaceusing a first range profile; identifying a second sensor reading forcapturing the gesture directed at the display interface using a secondrange profile; calculating a blended position indicator based on thefirst sensor reading, the second sensor reading, or a combinationthereof; and communicating, with a communication interface coupled tothe control unit, the blended position indicator by generating a cursorat the blended position indicator.

An embodiment of the present invention provides a non-transitorycomputer readable medium including identifying a first sensor readingfor capturing a gesture directed at a display interface using a firstrange profile; identifying a second sensor reading for capturing thegesture directed at the display interface using a second range profile;calculating a blended position indicator based on the first sensorreading, the second sensor reading, or a combination thereof; andcommunicating the blended position indicator by generating a cursor atthe blended position indicator.

Certain embodiments of the invention have other steps or elements inaddition to or in place of those mentioned above. The steps or elementswill become apparent to those skilled in the art from a reading of thefollowing detailed description when taken with reference to theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an electronic system with a gesture processing mechanism in anembodiment of the present invention.

FIG. 2 is an example block diagram of the electronic system.

FIG. 3 is an example diagram of the electronic system in operation.

FIG. 4 is another example diagram of the electronic system in operation.

FIG. 5 is a control flow of the electronic system.

FIG. 6 is a flow chart of a method of operation of the electronic systemin a further embodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention provide a more accurate mechanismfor controlling a display interface such as the first display interface,the second display interface, or a combination thereof. Morespecifically, the electronic system can use a blended position indicatorto approximate the direction of a gesture made by a user. The electronicsystem can more accurately approximate the direction of the gesturebased on readings from multiple sensors rather than relying on readingsfrom only one of the sensors.

Embodiments of the present invention can also enhance the usability ofdifferent sensors provided by different sensor vendors or manufacturers.More specifically, the electronic system can blend or combine readingsfrom a first sensor and readings from a second sensor with differentcapturing capabilities and different granularity limitations. Forexample, the electronic system can blend or combine readings fromdifferent sensors for ensuring a user gesture is captured by the secondsensor when the user gesture is outside of a capture range of the firstsensor.

Embodiments of the present invention can provide an improved mechanismfor controlling a display interface when the user is gesturing in arapid or unpredictable manner. The electronic system can calculate aninferred terminal point, representing an obscured or hard to detectappendage position, based on known appendage positions, a firstappendage orientation, and a second appendage orientation. Theelectronic system can calculate the blended position indicator based onthe inferred terminal point to prevent the cursor from skipping ordisappearing when an appendage position of the user is not captured byany of the sensors.

The following embodiments are described in sufficient detail to enablethose skilled in the art to make and use the invention. It is to beunderstood that other embodiments would be evident based on the presentdisclosure, and that system, process, or mechanical changes may be madewithout departing from the scope of the present invention.

In the following description, numerous specific details are given toprovide a thorough understanding of the invention. However, it will beapparent that the invention may be practiced without these specificdetails. In order to avoid obscuring the embodiment of the presentinvention, some well-known circuits, system configurations, and processsteps are not disclosed in detail.

The drawings showing embodiments of the system are semi-diagrammatic,and not to scale and, particularly, some of the dimensions are for theclarity of presentation and are shown exaggerated in the drawingfigures. Similarly, although the views in the drawings for ease ofdescription generally show similar orientations, this depiction in thefigures is arbitrary for the most part. Generally, the invention can beoperated in any orientation.

The term “module” referred to herein can include software, hardware, ora combination thereof in the embodiment of the present invention inaccordance with the context in which the term is used. For example, thesoftware can be machine code, firmware, embedded code, and applicationsoftware. Also for example, the hardware can be circuitry, processor,computer, integrated circuit, integrated circuit cores, a pressuresensor, an inertial sensor, a microelectromechanical system (MEMS),passive devices, or a combination thereof.

Referring now to FIG. 1, therein is shown an electronic system 100 witha gesture processing mechanism in an embodiment of the presentinvention. The electronic system 100 includes a first device 102, suchas the display device, connected to a second device 106, such as aserver. The first device 102 can communicate with the second device 106through a communication path 104, such as a wireless or wired network.

For illustrative purposes, the electronic system 100 is described withthe first device 102 as the display device, although it is understoodthat the first device 102 can be different types of devices. Forexample, the first device 102 can be any of a variety of mobile devices,such as a smartphone, a cellular phone, a tablet device, a laptopcomputer, or a combination thereof. Also, for example, the first device102 can be any of a variety of non-mobile devices, such as a gamingconsole, an entertainment device, a desktop computer, a server, or acombination thereof.

As yet another example, the first device 102 can include one or moresensors 103 or a component therein. The sensors 103 can capture images,video, or visual spectra and can determine spatial locations ordistances. More specifically, the sensors 103 can capture static images,video frames, visual spectra, light reflectance, infrared (IR)signatures, ultraviolet (UV) signatures, or a combination thereof. Forexample, the sensor 103 can include a depth sensor, a two-dimensionalcamera, a three-dimensional camera, a stereoscopic camera, a motionsensor, a red-green-blue (RGB) sensor, an active pixel sensor, acharge-coupled sensor, a complementary metal-oxide-semiconductor (CMOS)sensor, or a combination thereof.

For illustrative purposes, the sensors 103 are described as beingintegrated in the first device 102. However, it is understood that thesensors 103 can be independent devices separate from the first device102. In addition, the sensors 103 can be coupled to the first device102, the second device 106, or a combination thereof. For example, thesensors 103 can include a Microsoft Kinect™ sensor, a Creative Senz3D™sensor, or a Leap Motion™ sensor.

The first device 102 can couple to the communication path 104 tocommunicate with the second device 106. For illustrative purposes, theelectronic system 100 is described with the second device 106 as aserver, although it is understood that the second device 106 can bedifferent types of devices. For example, the second device 106 can beany of a variety of mobile devices, such as a smartphone, a cellularphone, a tablet device, a laptop computer, or a combination thereof.

Also, the second device 106 can be any variety of devices for displayingdata, information, graphics, or a combination thereof. For example, thesecond device 106 can be a display device such as a television, aprojector device, or a monitor. The second device 106 can display animage captured by the sensors 103.

The second device 106 can also be any of a variety of centralized ordecentralized computing devices. For example, the second device 106 canbe a grid computing resource, a server farm, a virtualized computingresource, a cloud computing resource, a router, a switch, a peer-to-peerdistributed computing resource, or a combination thereof.

The second device 106 can be centralized in a single computer room,distributed across different rooms, distributed across differentgeographical locations, or embedded within a telecommunications network.For example, the second device 106 can be a particularized machine, suchas a mainframe, a server, a cluster server, a rack mounted server, or ablade server, or as more specific examples, an IBM System z10™ BusinessClass mainframe or a HP ProLiant ML™ server. The second device 106 cancouple with the communication path 104 to communicate with the firstdevice 102.

Also for illustrative purposes, the electronic system 100 is shown withthe second device 106 and the first device 102 as end points of thecommunication path 104, although it is understood that the electronicsystem 100 can have a different partition between the first device 102,the second device 106, and the communication path 104. For example, thefirst device 102, the second device 106, or a combination thereof canalso function as part of the communication path 104.

The communication path 104 can be a variety of networks or communicationmediums. For example, the communication path 104 can include wirelesscommunication, wired communication, optical communication, or acombination thereof. Satellite communication, cellular communication,Bluetooth™, Bluetooth™ Low Energy (BLE), wireless High-DefinitionMultimedia Interface (HDMI), ZigBee™, Near Field Communication (NFC),Infrared Data Association standard (IrDA), wireless fidelity (WiFi), andworldwide interoperability for microwave access (WiMAX) are examples ofwireless communication that can be included in the communication path104. Ethernet, HDMI, digital subscriber line (DSL), fiber to the home(FTTH), and plain old telephone service (POTS) are examples of wiredcommunication that can be included in the communication path 104.

Further, the communication path 104 can traverse a number of networktopologies and distances. For example, the communication path 104 caninclude a direct connection, personal area network (PAN), local areanetwork (LAN), metropolitan area network (MAN), wide area network (WAN)or any combination thereof.

Referring now to FIG. 2, therein is shown an exemplary block diagram ofthe electronic system 100. The electronic system 100 can include thefirst device 102, the communication path 104, and the second device 106.The first device 102 can send information in a first device transmission208 over the communication path 104 to the second device 106. The seconddevice 106 can send information in a second device transmission 210 overthe communication path 104 to the first device 102.

For brevity of description in this embodiment of the present invention,the first device 102 will be described as a display device and thesecond device 106 will be described as a server. Embodiments of thepresent invention are not limited to this selection for the type ofdevices. The selection is an example of the embodiments of the presentinvention.

The first device 102 can include a first control unit 212, a firststorage unit 214, a first communication unit 216, a first user interface218, and a first location unit 220. The first control unit 212 caninclude a first control interface 222. The first control unit 212 canexecute a first software 226 to provide the intelligence of theelectronic system 100. The first control unit 212 can be implemented ina number of different manners.

For example, the first control unit 212 can be a processor, an embeddedprocessor, a microprocessor, a hardware control logic, a hardware finitestate machine (FSM), a digital signal processor (DSP), or a combinationthereof. The first control interface 222 can be used for communicationbetween the first control unit 212 and other functional units in thefirst device 102. The first control interface 222 can also be used forcommunication that is external to the first device 102.

The first control interface 222 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsexternal to the first device 102.

The first control interface 222 can be implemented in different ways andcan include different implementations depending on which functionalunits or external units are being interfaced with the first controlinterface 222. For example, the first control interface 222 can beimplemented with a pressure sensor, an inertial sensor, amicroelectromechanical system (MEMS), optical circuitry, waveguides,wireless circuitry, wireline circuitry, or a combination thereof.

The first location unit 220 can generate a location information, aheading, and a speed of the first device 102, as examples. The firstlocation unit 220 can be implemented in many ways. For example, thefirst location unit 220 can function as at least a part of a globalpositioning system (GPS), an inertial navigation system such as agyroscope, an accelerometer, a magnetometer, a compass, a spectrumanalyzer, a beacon, a cellular-tower location system, a pressurelocation system, or any combination thereof.

The first location unit 220 can include a first location interface 232.The first location interface 232 can be used for communication betweenthe first location unit 220 and other functional units in the firstdevice 102. The first location interface 232 can also be used forcommunication that is external to the first device 102.

The first location interface 232 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsexternal to the first device 102.

The first location interface 232 can include different implementationsdepending on which functional units or external units are beinginterfaced with the first location unit 220. The first locationinterface 232 can be implemented with technologies and techniquessimilar to the implementation of the first control interface 222.

The first storage unit 214 can store the first software 226. The firststorage unit 214 can also store relevant information, such asadvertisements, biometric information, points of interest (POIs),navigation routing entries, reviews/ratings, feedback, or anycombination thereof.

The first storage unit 214 can be a volatile memory, a nonvolatilememory, an internal memory, an external memory, or a combinationthereof. For example, the first storage unit 214 can be a nonvolatilestorage such as non-volatile random access memory (NVRAM), Flash memory,disk storage, or a volatile storage such as static random access memory(SRAM).

The first storage unit 214 can include a first storage interface 224.The first storage interface 224 can be used for communication betweenthe first storage unit 214 and other functional units in the firstdevice 102. The first storage interface 224 can also be used forcommunication that is external to the first device 102.

The first storage interface 224 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsexternal to the first device 102.

The first storage interface 224 can include different implementationsdepending on which functional units or external units are beinginterfaced with the first storage unit 214. The first storage interface224 can be implemented with technologies and techniques similar to theimplementation of the first control interface 222.

The first communication unit 216 can enable external communication toand from the first device 102. For example, the first communication unit216 can permit the first device 102 to communicate with the seconddevice 106 of FIG. 1, an attachment such as a peripheral device or anotebook computer, and the communication path 104.

The first communication unit 216 can also function as a communicationhub allowing the first device 102 to function as part of thecommunication path 104 and not limited to be an end point or terminalunit to the communication path 104. The first communication unit 216 caninclude active and passive components, such as microelectronics or anantenna, for interaction with the communication path 104.

The first communication unit 216 can include a first communicationinterface 228. The first communication interface 228 can be used forcommunication between the first communication unit 216 and otherfunctional units in the first device 102. The first communicationinterface 228 can receive information from the other functional units orcan transmit information to the other functional units.

The first communication interface 228 can include differentimplementations depending on which functional units are being interfacedwith the first communication unit 216. The first communication interface228 can be implemented with technologies and techniques similar to theimplementation of the first control interface 222.

The first user interface 218 allows a user (not shown) to interface andinteract with the first device 102. The first user interface 218 caninclude an input device and an output device. Examples of the inputdevice of the first user interface 218 can include a microphone, akeypad, a touchpad, soft-keys, a keyboard, or any combination thereof toprovide data and communication inputs.

Examples of the output device of the first user interface 218 caninclude a first display interface 230. The first display interface 230can include a display, a projector, a video screen, a speaker, or anycombination thereof.

The first control unit 212 can operate the first user interface 218 todisplay information generated by the electronic system 100. The firstcontrol unit 212 can also execute the first software 226 for the otherfunctions of the electronic system 100, including receiving locationinformation from the first location unit 220. The first control unit 212can further execute the first software 226 for interaction with thecommunication path 104 via the first communication unit 216.

The second device 106 can be optimized for implementing the variousembodiments in a multiple device embodiment with the first device 102.The second device 106 can provide the additional or higher performanceprocessing power compared to the first device 102. The second device 106can include a second control unit 234, a second communication unit 236,a second user interface 238, and a second location unit 252.

The second user interface 238 allows the user to interface and interactwith the second device 106. The second user interface 238 can include aninput device and an output device.

Examples of the input device of the second user interface 238 caninclude a microphone, a keypad, a touchpad, soft-keys, a keyboard, orany combination thereof to provide data and communication inputs.

Examples of the output device of the second user interface 238 caninclude a second display interface 240. The second display interface 240can include a display, a projector, a video screen, a speaker, or anycombination thereof.

The second location unit 252 can generate a location information, aheading, and a speed of the first device 102, as examples. The secondlocation unit 252 can be implemented in many ways. For example, thesecond location unit 252 can function as at least a part of a globalpositioning system (GPS), an inertial navigation system such as agyroscope, an accelerometer, a magnetometer, a compass, a spectrumanalyzer, a beacon, a cellular-tower location system, a pressurelocation system, or any combination thereof.

The second location unit 252 can include a second location interface254. The second location interface 254 can be used for communicationbetween the second location unit 252 and other functional units in thesecond device 106. The second location interface 254 can also be usedfor communication that is external to the second device 106.

The second location interface 254 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsexternal to the second device 106.

The second location interface 254 can include different implementationsdepending on which functional units or external units are beinginterfaced with the second location unit 252. The second locationinterface 254 can be implemented with technologies and techniquessimilar to the implementation of the second control interface 244.

The second control unit 234 can execute a second software 242 to providethe intelligence of the second device 106 of the electronic system 100.The second software 242 can operate in conjunction with the firstsoftware 226. The second control unit 234 can provide additionalperformance compared to the first control unit 212.

The second control unit 234 can operate the second user interface 238 todisplay information. The second control unit 234 can also execute thesecond software 242 for the other functions of the electronic system100, including operating the second communication unit 236 tocommunicate with the first device 102 over the communication path 104.

The second control unit 234 can be implemented in a number of differentmanners. For example, the second control unit 234 can be a processor, anembedded processor, a microprocessor, a hardware control logic, ahardware finite state machine (FSM), a digital signal processor (DSP),or a combination thereof.

The second control unit 234 can include a second controller interface244. The second controller interface 244 can be used for communicationbetween the second control unit 234 and other functional units in thesecond device 106. The second controller interface 244 can also be usedfor communication that is external to the second device 106.

The second controller interface 244 can receive information from theother functional units or from external sources, or can transmitinformation to the other functional units or to external destinations.The external sources and the external destinations refer to sources anddestinations external to the second device 106.

The second controller interface 244 can be implemented in different waysand can include different implementations depending on which functionalunits or external units are being interfaced with the second controllerinterface 244. For example, the second controller interface 244 can beimplemented with a pressure sensor, an inertial sensor, amicroelectromechanical system (MEMS), optical circuitry, waveguides,wireless circuitry, wireline circuitry, or a combination thereof.

A second storage unit 246 can store the second software 242. The secondstorage unit 246 can also store the relevant information, such asadvertisements, biometric information, points of interest, navigationrouting entries, reviews/ratings, feedback, or any combination thereof.The second storage unit 246 can be sized to provide the additionalstorage capacity to supplement the first storage unit 214.

For illustrative purposes, the second storage unit 246 is shown as asingle element, although it is understood that the second storage unit246 can be a distribution of storage elements. Also for illustrativepurposes, the electronic system 100 is shown with the second storageunit 246 as a single hierarchy storage system, although it is understoodthat the electronic system 100 can have the second storage unit 246 in adifferent configuration. For example, the second storage unit 246 can beformed with different storage technologies forming a memory hierarchalsystem including different levels of caching, main memory, rotatingmedia, or off-line storage.

The second storage unit 246 can be a volatile memory, a nonvolatilememory, an internal memory, an external memory, or a combinationthereof. For example, the second storage unit 246 can be a nonvolatilestorage such as non-volatile random access memory (NVRAM), Flash memory,disk storage, or a volatile storage such as static random access memory(SRAM).

The second storage unit 246 can include a second storage interface 248.The second storage interface 248 can be used for communication betweenthe second storage unit 246 and other functional units in the seconddevice 106. The second storage interface 248 can also be used forcommunication that is external to the second device 106.

The second storage interface 248 can receive information from the otherfunctional units or from external sources, or can transmit informationto the other functional units or to external destinations. The externalsources and the external destinations refer to sources and destinationsexternal to the second device 106.

The second storage interface 248 can include different implementationsdepending on which functional units or external units are beinginterfaced with the second storage unit 246. The second storageinterface 248 can be implemented with technologies and techniquessimilar to the implementation of the second controller interface 244.

The second communication unit 236 can enable external communication toand from the second device 106. For example, the second communicationunit 236 can permit the second device 106 to communicate with the firstdevice 102 over the communication path 104.

The second communication unit 236 can also function as a communicationhub allowing the second device 106 to function as part of thecommunication path 104 and not limited to be an end point or terminalunit to the communication path 104. The second communication unit 236can include active and passive components, such as microelectronics oran antenna, for interaction with the communication path 104.

The second communication unit 236 can include a second communicationinterface 250. The second communication interface 250 can be used forcommunication between the second communication unit 236 and otherfunctional units in the second device 106. The second communicationinterface 250 can receive information from the other functional units orcan transmit information to the other functional units.

The second communication interface 250 can include differentimplementations depending on which functional units are being interfacedwith the second communication unit 236. The second communicationinterface 250 can be implemented with technologies and techniquessimilar to the implementation of the second controller interface 244.

The first communication unit 216 can couple with the communication path104 to send information to the second device 106 in the first devicetransmission 208. The second device 106 can receive information in thesecond communication unit 236 from the first device transmission 208 ofthe communication path 104.

The second communication unit 236 can couple with the communication path104 to send information to the first device 102 in the second devicetransmission 210. The first device 102 can receive information in thefirst communication unit 216 from the second device transmission 210 ofthe communication path 104. The electronic system 100 can be executed bythe first control unit 212, the second control unit 234, or acombination thereof.

For illustrative purposes, the second device 106 is shown with thepartition having the second user interface 238, the second storage unit246, the second control unit 234, and the second communication unit 236,although it is understood that the second device 106 can have adifferent partition. For example, the second software 242 can bepartitioned differently such that some or all of its function can be inthe second control unit 234 and the second communication unit 236. Also,the second device 106 can include other functional units not shown inFIG. 2 for clarity.

The functional units in the first device 102 can work individually andindependently of the other functional units. The first device 102 canwork individually and independently from the second device 106 and thecommunication path 104.

The functional units in the second device 106 can work individually andindependently of the other functional units. The second device 106 canwork individually and independently from the first device 102 and thecommunication path 104.

For illustrative purposes, the electronic system 100 is described byoperation of the first device 102 and the second device 106. It isunderstood that the first device 102 and the second device 106 canoperate any of the modules and functions of the electronic system 100.For example, the first device 102 is described to operate the firstlocation unit 220, although it is understood that the second device 106can also operate the first location unit 220. As an additional example,the second device 106 is described to operate the second location unit252, although it is understood that the first device 102 can alsooperate the second location unit 252.

Referring now to FIG. 3, therein is shown an example diagram of theelectronic system 100 in operation. FIG. 3 depicts a user 302undertaking a gesture 304 for controlling the first display interface230. The gesture 304 represents a motion or positioning of an appendageof the user 302 as captured by a device such as the first device 102 ofFIG. 1, the second device 106 of FIG. 1, or a combination thereof. Thegesture 304 can include a pointing gesture, a directive gesture, athumbs-up gesture, an open palm gesture, or a combination thereof. Morespecifically, the gesture 304 can represent the motion or positioning ofthe appendage of the user 302 as captured by one or more of the sensors103 of FIG. 1.

The electronic system 100 can capture the gesture 304 based on a firstsensor reading 306, a second sensor reading 308, or a combinationthereof. The first sensor reading 306 is data or information received orretrieved from one of the sensors 103 concerning a gesture made by theuser 302. The first sensor reading 306 can be data or informationreceived or retrieved from a first sensor 310. The first sensor reading306 can be data or information received or retrieved from the firstsensor 310 at one particular moment in time or over a period of time.

The first sensor 310 can be an instance of the sensors 103 for capturingimages, video, or visual spectra and determining spatial locations ordistances. For example, the first sensor 310 can include a MicrosoftKinect™ sensor, a Creative Senz3D™ sensor, or a Leap Motion™ sensor.

The first sensor reading 306 can capture an elbow position 312, a handposition 314, a fingertip position 316, or a combination thereof. Theelbow position 312 is a spatial position or coordinate for representingan elbow of the user 302. For example, the elbow position 312 can be thespatial position or coordinate of an elbow joint of the user 302 as theuser 302 undertakes the gesture 304.

The hand position 314 is a spatial position or coordinate forrepresenting a hand of the user 302. For example, the hand position 314can be the spatial position or coordinate of a palm, a wrist, or anopisthenar of the user 302 as the user 302 undertakes the gesture 304.The fingertip position 316 is a spatial position or coordinate forrepresenting a fingertip of the user 302.

The second sensor reading 308 can be data or information received orretrieved from another one of the sensors 103 concerning the gesturemade by the user 302. The second sensor reading 308 can be data orinformation received or retrieved from a second sensor 318 differentfrom the first sensor 310. The first sensor reading 306 can be data orinformation received or retrieved from the second sensor 318 at oneparticular moment in time or over a period of time.

The second sensor 318 can also be an instance of the sensors 103 forcapturing images, video, or visual spectra and determining spatiallocations or distances. For example, the second sensor 318 can includethe Microsoft Kinect™ sensor, the Creative Senz3D™ sensor, or the LeapMotion™ sensor.

The first sensor reading 306, the second sensor reading 308, or acombination thereof can include coordinates of the gesture 304 in asensor coordinate system 322. More specifically, the first sensorreading 306, the second sensor reading 308, or a combination thereof caninclude coordinates of the elbow position 312, the hand position 314,the fingertip position 316, or a combination thereof used to make thegesture 304 in the sensor coordinate system 322.

The sensor coordinate system 322 is a coordinate system associated withone of the sensors 103. For example, the sensor coordinate system 322can be a coordinate system associated with the first sensor 310, thesecond sensor 318, or a combination thereof. As will be discussed below,the electronic system 100 can calculate a transformation matrix 320 totransform the coordinates of the gesture 304 in the sensor coordinatesystem 322 to a uniform coordinate system 324.

The transformation matrix 320 is an array for mapping a spatial positionof a point in one coordinate system into another coordinate system. Thetransformation matrix 320 can be an array of numbers or expressions forchanging the spatial position of a point in one coordinate system intoanother coordinate system. For example, the transformation matrix 320can be an array of numbers or expression for changing the coordinates ofa point in the sensor coordinate system 322 to coordinates in theuniform coordinate system 324.

The uniform coordinate system 324 is a homogenous coordinate system forstandardizing distances and positions determined using different spatialcoordinates. The uniform coordinate system 324 can be a multidimensionalcoordinate system such as a two-dimensional coordinate system, athree-dimensional coordinate system, or a combination thereof. Theuniform coordinate system 324 can include a common scheme for describingor representing locations for multiple independent devices, such as thefirst sensor 310 and the second sensor 318.

The uniform coordinate system 324 can be associated with a device in theelectronic system 100 such as the first display interface 230, thesecond display interface 240, or a combination thereof. For example, theuniform coordinate system 324 can be a display coordinate system wherethe origin of the uniform coordinate system 324 is a screen corner ofthe display interface.

The user 302 can undertake the gesture 304 from a user location 326. Theuser location 326 is a geographic location of the user 302. For example,the user location 326 can include a GPS coordinate, a three-dimensionalcoordinate, a room or enclosure location, or a combination thereof. Theuser location 326 can also include a position of the user 302 relativeto one or more of the devices in the electronic system 100. For example,the user location 326 can include a position of the user 30 relative tothe first display interface 230, the first sensor 310, the second sensor318, or a combination thereof.

The first sensor 310 can include a first range profile 328, a secondrange profile 330, or a combination thereof. The first range profile 328is a region where an object or appendage can be captured by the firstsensor 310, the second sensor 318, or a combination thereof. The firstrange profile 328 can be a region within a field of view of the firstsensor 310, the second sensor 318, or a combination thereof. The firstrange profile 328 can be a region where an object or appendage above athreshold size can be captured by the first sensor 310, the secondsensor 318, or a combination thereof.

The first range profile 328 can be based on a granularity or sensitivityof the first sensor 310 or the second sensor 318. The first rangeprofile 328 can further be based on an ambient environment surroundingthe first sensor 310 or the second sensor 318, including a lightingcondition. The first range profile 328 can further be based on alocation of the first sensor 310 or the second sensor 318 relative toother objects, an angle of orientation of the first sensor 310 or thesecond sensor 318, or a combination thereof.

For example, the first range profile 328 can be the region whereappendages larger than a threshold size can be captured by the firstsensor 310 or the second sensor 318. As a more specific example, thefirst range profile 328 can be the region where appendages larger than ahand can be captured by the first sensor 310 or the second sensor 318.

The second range profile 330 can be an additional region extendingbeyond the first range profile 328. The second range profile 330 canalso be a region where an object or appendage can be captured by one ofthe sensors 103 other than the sensor associated with the first rangeprofile 328. For example, the first range profile 328 can be associatedwith the first sensor 310, in this example, the second range profile 330can be a region where an appendage of the user 302 can be captured bythe second sensor 318.

When the first range profile 328 and the second range profile 330 areboth associated with either the first sensor 310 or the second sensor318, the second range profile 330 can be an additional region extendingbeyond the first range profile 328.

When the first range profile 328 is associated with the first sensor 310and the second range profile 330 is associated with the second sensor318, the second range profile 330 can be a region where an object orappendage can be captured by the second sensor 318. The second rangeprofile 330 can be a region within a field of view of the second sensor318. The second range profile 330 can also be a region where an objector appendage above a threshold size can be captured by the second sensor318.

For example, the first range profile 328 can be the region within thefield of view of the first sensor 310 where appendages larger than orequal to an average human hand can be captured by the first sensor 310.In this example, the second range profile 330 can be the region whereappendages larger than or equal to an average human fingertip can becaptured by the second sensor 318.

The first range profile 328 and the second range profile 330 can overlapto produce an overlapping range profile 332. The overlapping rangeprofile 332 is a region included in or encompassing the first rangeprofile 328 and the second range profile 330.

When the first range profile 328 and the second range profile 330 bothrefer to regions covered by either the first sensor 310 or the secondsensor 318, the overlapping range profile 332 can be a smaller instanceof the total region covered by either the first sensor 310 or the secondsensor 318. In addition, when the first range profile 328 refers to theregion covered by the first sensor 310 and the second range profile 330refers to the region covered by the second sensor 318, the overlappingrange profile 332 can be a region of intersection between the firstrange profile 328 and the second range profile 330.

The electronic system 100 can also identify a granularity limitation 334associated with the first range profile 328, the second range profile330, or a combination thereof. The granularity limitation 334 is aminimum size threshold for an object or appendage of the user 302 can becaptured by the sensors 103. The granularity limitation 334 can be basedon an object or appendage size such as the size of a torso, arm, hand,or fingertip. The granularity limitation 334 can also be based on atwo-dimensional area such as 5, 10, or 20 square inches.

As depicted in FIG. 3, the first display interface 230 can display acursor 348 for indicating a position of a blended position indicator350. The cursor 348 is a graphical icon or marker for showing theblended position indicator 350 on the first display interface 230, thesecond display interface 240, or a combination thereof.

The blended position indicator 350 is a coordinate or position on adisplay interface representing an estimated direction of a gesture madeby the user 302 at the display interface. The blended position indicator350 can be a coordinate or position on the first display interface 230representing the estimated direction of the gesture 304 made by the user302 at the first display interface 230.

As will be discussed below, the electronic system 100 can calculate theblended position indicator 350 based on a first position indicator 352,a second position indicator 358, or a combination thereof. The firstposition indicator 352 is a coordinate or position on a displayinterface representing an intersection point between a first vector 360and the display interface.

The first vector 360 is a vector representing a possible direction ofthe gesture 304. The first vector 360 can be calculated from appendagepositions of the user 302 captured in a sensor reading. For example, thefirst vector 360 can be a vector calculated from appendage positions ofthe user 302 captured by the first sensor reading 306. As a morespecific example, the first vector 360 can be a vector calculated fromthe elbow position 312 and the hand position 314 of the user 302captured by the first sensor reading 306.

As will be discussed below, the electronic system 100 can apply thetransformation matrix 320 to the appendage positions of the user 302 tocalculate a transformed origin point 354 and a transformed terminalpoint 356. The transformed origin point 354 is an origination orcommencement point of a vector. The transformed origin point 354 can becalculated by applying the transformation matrix 320 to an appendageposition captured in a sensor reading. The transformed terminal point356 is a directional point of a vector calculated by applying thetransformation matrix 320 to an appendage position captured in a sensorreading.

The second position indicator 358 is a coordinate or position on adisplay interface for representing an intersection point between asecond vector 362 and the display interface. The second vector 362 isanother vector representing a possible direction of the gesture 304.

For example, the second vector 362 can be a vector calculated fromappendage positions of the user 302 captured by the second sensorreading 308. As a more specific example, the second vector 362 can be avector calculated from the hand position 314 and the fingertip position316 of the user 302 captured by the second sensor reading 308. Theelectronic system 100 can calculate the first vector 360, the secondvector 362, or a combination thereof based on the transformed originpoint 354 and the transformed terminal point 356.

The electronic system 100 can also identify a first sensorcharacteristic 336 associated with the first sensor reading 306. Thefirst sensor characteristic 336 is an indication of the reliability andfrequency of the first sensor reading 306. The first sensorcharacteristic 336 can include a confidence score 338 and a sensorupdate frequency 340.

The confidence score 338 is a numeric value indicating a certaintyattributed to a sensor reading. For example, the confidence score 338can be a numeric value indicating the certainty attributed to the firstsensor reading 306, the second sensor reading 308, or a combinationthereof.

The sensor update frequency 340 is a measure of the number of times oneof the sensors 103 generates a sensor reading within a given amount oftime. The sensor update frequency 340 can be associated with the numberof readings or measurements performed by the sensor in a second, aminute, or another measure of time. For example, the sensor updatefrequency 340 can be the measure of the number of times the first sensor310 generates the first sensor reading 306, the second sensor 318generates the second sensor reading 308, or a combination thereof.

The electronic system 10 can identify a second sensor characteristic 342associated with the second sensor reading 308. The second sensorcharacteristic 342 is an indication of the reliability and frequency ofthe second sensor reading 308. The second sensor characteristic 342 caninclude the confidence score 338 and the sensor update frequency 340associated with the second sensor reading 308.

The electronic system 100 can calculate a first weight 344 associatedwith the first sensor reading 306. The first weight 344 is a multiplierfor increasing or decreasing a contribution of the first sensor reading306 to a calculation of the blended position indicator 350. As will bediscussed below, the electronic system 100 can calculate the firstweight 344 based on the first sensor characteristic 336.

The electronic system can also calculate a second weight 346 associatedwith the second sensor reading 308. The second weight 346 is amultiplier for increasing or decreasing a contribution of the secondsensor reading 308 to the calculation of the blended position indicator350. The electronic system 100 can calculate the second weight 346 basedon the second sensor characteristic 342.

Referring now to FIG. 4, therein is shown another example diagram of theelectronic system 100 in operation. FIG. 4 depicts a first sensor frame402 and a second sensor frame 404.

The first sensor frame 402 is an image captured by one of the sensors103 depicting an object or subject at an initial point in time. Thefirst sensor frame 402 can be an image of an appendage of the user 302captured at an initial point in time. For example, the first sensorframe 402 can be captured by the first sensor 310 of FIG. 3, the secondsensor 318 of FIG. 3, or a combination thereof.

The second sensor frame 404 is another image captured by one of thesensors 103 depicting an object or subject at a latter point in time.The second sensor frame 404 can be another image captured by one of thesensors 103 depicting the same object or subject depicted in the firstsensor frame 402 at a latter point in time. More specifically, thesecond sensor frame 404 can be another image captured by one of thesensors 103 depicting the same appendage of the user 302 at a latterpoint in time. For example, the second sensor frame 404 can be capturedby the first sensor 310, the second sensor 318, or a combinationthereof.

As will be discussed below, the electronic system 100 can determine afirst appendage orientation 406 based on one or more appendages depictedin the first sensor frame 402. The first appendage orientation 406 is analignment or angle of one or more appendages of the user 302. The firstappendage orientation 406 can be the spatial positioning of one or moreappendages used to make the gesture 304 of FIG. 3.

The electronic system 100 can determine the first appendage orientation406 based on a first normal vector 408. The first normal vector 408 is avector orthogonal to plane associated with a skin surface of the user302. The first normal vector 408 can be a vector orthogonal to a planeassociated with an appendage surface of the user 302. More specifically,the first normal vector 408 can be a vector orthogonal to a jointsurface of the user 302. In addition, the first normal vector 408 can bea vector orthogonal to a palm center of a hand used to make the gesture304.

The first sensor frame 402 can include an origination point 410 and aknown terminal point 414. The known terminal point 414 represents apoint or location on a distal end of an appendage of the user 302 asrecognized by the electronic system 100. The origination point 410represents a point or location proximal or closer to the body of theuser 302 than the known terminal point 414 depicted in a sensor frame.For example, the origination point 410 can include a metacarpophalangealjoint, a proximal interphalangeal joint, or a wrist joint. Also, forexample, the known terminal point 414 can include a fingertip or adistal interphalangeal joint.

The origination point 410 can include a first origin point 412. Thefirst origin point 412 can represent one instance of the originationpoint 410 proximal or closer to the body of the user 302 than the knownterminal point 414 depicted in the first sensor frame 402. For example,the first origin point 412 can be the elbow position 312 of FIG. 3 ofthe user 302 and the known terminal point 414 can be the hand position314 of the user 302 as depicted in the first sensor frame 402.

The electronic system 100 can also determine a second appendageorientation 416 based on the second sensor frame 404. The secondappendage orientation 416 is a spatial positioning of one or moreappendages of the user 302. The second appendage orientation 416 can bethe spatial positioning of one or more appendages used to make thegesture 304.

The electronic system 100 can determine the second appendage orientation416 based on a second normal vector 418. The second normal vector 418 isa vector orthogonal to the same appendage surface of the user 302 usedto determine the first normal vector 408 at a latter point in time. Thesecond normal vector 418 can be a vector orthogonal to the sameappendage surface of the appendage used to make the gesture 304.

As will be discussed below, the electronic system 100 can calculate anaxis of rotation 420, an angle of rotation 422, or a combination thereofbased on the first normal vector 408, the second normal vector 418, or acombination thereof. The axis of rotation 420 is an imaginary line fordetermining the rotation of a rigid object or body part. The angle ofrotation 422 is a measure of how much a rigid object or body partrotates around the axis of rotation 420. The angle of rotation 422 canbe calculated in degrees or radians.

The second sensor frame 404 can include a second origin point 424. Thesecond origin point 424 represents another instance of the originationpoint 410 depicted in the second sensor frame 404. For example, thesecond origin point 424 can be the hand position 314 of the user 302 asdepicted in the second sensor frame 404.

As will be discussed below, the electronic system 100 can also determinean inferred terminal point 426 based on the second origin point 424, thefirst origin point 412, the known terminal point 414, the firstappendage orientation 406, and the second appendage orientation 416. Theinferred terminal point 426 represents an inferred distal end of anappendage of the user 302 depicted in the second sensor frame 404. Theinferred terminal point 426 can represent an inferred fingertip positionof the user 302.

Referring now to FIG. 5, therein is shown a control flow 500 of theelectronic system 100 of FIG. 1. The electronic system 100 can include acalibration module 502, a range module 504, a location module 506, agesture tracking module 508, an inference module 510, a transformationmodule 516, a vector projection module 518, a blending module 520, or acombination thereof.

The calibration module 502 can be coupled to the range module 504. Therange module 504 can be further coupled to the location module 506, thelocation module 506 can be further coupled to the gesture trackingmodule 508, the gesture tracking module 508 can be further coupled tothe inference module 510, the inference module 510 can be furthercoupled to the transformation module 516, the transformation module 516can be further coupled to the vector projection module 518, and thevector projection module 518 can be further coupled to the blendingmodule 520.

The modules can be coupled by having the input of one module connectedto the output of another module as shown in FIG. 5. The modules can becoupled by using wired or wireless connections, the communication path104 of FIG. 1, instructional steps, or a combination thereof. Themodules can be coupled directly, without any intervening structuresother than the structure providing the direct connection. The modulescan further be coupled indirectly, through a shared connection or otherfunctional structures between the coupled modules.

The calibration module 502 is configured to calculate one or moreinstances of the transformation matrix 320 of FIG. 3. The calibrationmodule 502 can calculate the transformation matrix 320 for transformingcoordinates in the sensor coordinate system 322 of FIG. 3 to coordinatesin the uniform coordinate system 324 of FIG. 3. For example, thecalibration module 502 can calculate the transformation matrix 320 fortransforming the coordinates of the hand position 314 of FIG. 3, theelbow position 312 of FIG. 3, the fingertip position 316 of FIG. 3, or acombination thereof to their corresponding coordinates in the uniformcoordinate system 324.

The calibration module 502 can calculate different instances of thetransformation matrix 320 for each of the sensors 103. For example, thecalibration module 502 can calculate one instance of the transformationmatrix 320 for the first sensor 310 of FIG. 3 and another instance ofthe transformation matrix 320 for the second sensor 318 of FIG. 3. Inthis example, the instance of the transformation matrix 320 for thefirst sensor 310 can be used to transform coordinates in the sensorcoordinate system 322 of the first sensor 310 into the uniformcoordinate system 324. Also, in this example, the instance of thetransformation matrix 320 for the second sensor 318 can be used totransform coordinates in the sensor coordinate system 322 of the secondsensor 318 into the uniform coordinate system 324.

The calibration module 502 can calculate the transformation matrix 320by displaying an array of calibration points on a display interface suchas the first display interface 230, the second display interface 240 ofFIG. 2, or a combination thereof. The calibration module 502 can displaythe calibration points in a display coordinate system.

The calibration module 502 can then receive or identify a calibrationgesture made by the user 302 of FIG. 3 at one of the calibration points.The calibration gesture can include the gesture 304 of FIG. 3, a palmgesture, an arm gesture, or a combination thereof. The user 302 can makeone instance of the calibration gesture from a first position and canmake another instance of the calibration gesture from a second position.

The second position can be a geographic position or location differentfrom the first position. For example, the first position can be a leftcorner of a living room and the second position can be a right corner ofthe living room.

The calibration module 502 can receive or retrieve one or more sensorreadings capturing the coordinates of the calibration gesture in thesensor coordinate system 322. More specifically, the calibration module502 can receive or retrieve one or more sensor readings capturing thecoordinates of appendage positions used to make the calibration gesture.For example, the calibration module 502 can receive or retrieve a sensorreading from the first sensor 310 with the coordinates of the elbowposition 312, the hand position 314, the fingertip position 316, or acombination thereof used to make the calibration gesture. Thecalibration module 502 can receive or retrieve the coordinates of theappendage positions in the sensor coordinate system 322.

The calibration module 502 can generate a first calibration vector basedon the coordinates of the appendage positions in the sensor coordinatesystem 322. The first calibration vector is a vector calculated in thesensor coordinate system 322 representing the direction of thecalibration gesture undertaken at the first position.

The calibration module 502 can generate the first calibration vector byprojecting a vector connecting two or more coordinates representing theappendage positions of the calibration gesture undertaken at the firstposition. The calibration module 502 can project the first calibrationvector toward the display interface displaying the calibration points.The calibration module 502 can also generate a second calibrationvector. The second calibration vector is a vector calculated in thesensor coordinate system 322 representing the direction of thecalibration gesture undertaken at the second position.

The calibration module 502 can generate the second calibration vectorfor intersecting with the first calibration vector to determine anintersection point. The calibration module 502 can generate the secondcalibration vector by projecting a vector connecting two or morecoordinates representing the appendage positions of the calibrationgesture undertaken at the second position. The calibration module 502can project the second calibration vector toward the display interfacedisplaying the calibration points.

The calibration module 502 can then determine the intersection point forrepresenting an intersection between the first calibration vector andthe second calibration vector. The calibration module 502 can determinethe coordinates of the intersection point in the sensor coordinatesystem 322. The calibration module 502 can use the first control unit212 of FIG. 2, the second control unit 234 of FIG. 2, or a combinationthereof to determine the coordinates of the intersection point in thesensor coordinate system 322.

The calibration module 502 can calculate the transformation matrix 320based on the coordinates of the intersection point in the sensorcoordinate system 322 and the coordinates of the calibration point inthe display coordinate system. The calibration module 502 can take asinputs the coordinates of the intersection point in the sensorcoordinate system 322 and the coordinates of the calibration point inthe display coordinate system. The calibration module 502 can calculatethe transformation matrix 320 for transforming the coordinates of theintersection point in the sensor coordinate system 322 into thecoordinates of the calibration point in the display coordinate system.

The calibration module 502 can use the first control unit 212, thesecond control unit 234, or a combination thereof to calculate thetransformation matrix 320 using a least-squares estimation algorithm, aleast-squares error minimization method, an absolute orientationleast-squares error method, or a combination thereof. The calibrationmodule 502 can calculate the transformation matrix 320 as a closed-formsolution using unit quaternions.

The calibration module 502 can calculate a different instance of thetransformation matrix 320 for each of the sensors 103. The calibrationmodule 502 can store the instances of the transformation matrix 320 inthe first storage unit 214 of FIG. 2, the second storage unit 246 ofFIG. 2, or a combination thereof.

The calibration module 502 can be part of the first software 226 of FIG.2, the second software 242 of FIG. 2, or a combination thereof. Thefirst control unit 212 can execute the first software 226, the secondcontrol unit 234 can execute the second software 242, or a combinationthereof to calculate the transformation matrix 320.

Moreover, the calibration module 502 can also communicate thetransformation matrix 320 between devices through the firstcommunication unit 216 of FIG. 2, the second communication unit 236 ofFIG. 2, or a combination thereof. After calculating the transformationmatrix 320, the control flow 500 can pass from the calibration module502 to the range module 504.

The range module 504 is configured to determine the first range profile328 of FIG. 3, the second range profile 330 of FIG. 3, or a combinationthereof. The range module 504 can determine the first range profile 328,the second range profile 330, or a combination thereof based on thegranularity or sensitivity of the first sensor reading 306 of FIG. 3,the second sensor reading 308 of FIG. 3, or a combination thereof.

As previously discussed, both the first range profile 328 and the secondrange profile 330 can be associated with one of the sensors 103including the first sensor 310 or the second sensor 318. For example,the first range profile 328 can represent a region where one or moreappendages of the user 302 above a threshold size can be captured by thefirst sensor 310. Also, in this example, the second range profile 330can represent an additional region beyond the first range profile 328where one or more appendages of the user 302 above a different thresholdsize can be captured by the first sensor 310.

Also, as previously discussed, the second range profile 330 can beassociated with one of the sensors 103 different from the sensorassociated with the first range profile 328. For example, the firstrange profile 328 can be associated with the first sensor 310 and thesecond range profile 330 can be associated with the second range profile330. When the second range profile 330 is associated with the secondsensor 318, the second range profile 330 can be a region where one ormore appendages of the user 302 above a threshold size can be capturedby the second sensor 318.

The range module 504 can determine the first range profile 328 byreceiving or retrieving one or more boundaries, distances, coordinates,or a combination thereof for demarcating the first range profile 328from one of the sensors 103. The range module 504 can further determinethe first range profile 328 based on identifying one or more of thesensors 103. The range module 504 can determine the first range profile328 according to a driver associated with one of the sensors 103, adevice connected to the electronic system 100, or a combination thereof.In addition, the first range profile 328 can be predetermined by theelectronic system 100.

The range module 504 can determine the second range profile 330 byreceiving or retrieving one or more boundaries of the second rangeprofile 330 from one of the sensors 103, a driver associated with one ofthe sensors 103, a device connected to the electronic system 100, or acombination thereof. In addition, the second range profile 330 can bepredetermined by the electronic system 100. The range module 504 canalso determine the first range profile 328, the second range profile330, or a combination thereof based on an input from the user 302.

The range module 504 can determine the granularity limitation 334 ofFIG. 3 associated with the first range profile 328, the second rangeprofile 330, or a combination thereof. As previously discussed, thegranularity limitation 334 is a minimum size threshold above which anobject or appendage of the user 302 can be captured by the sensors 103.For example, the granularity limitation 334 can be based on a body partsize such as the size of a torso, arm, hand, or fingertip. As anadditional example, the granularity limitation 334 can be based on anarea such as 5, 10, or 20 square inches.

The range module 504 can determine the granularity limitation 334 byreceiving or retrieving the granularity limitation 334 from the firstsensor 310, the second sensor 318, or a combination thereof. In additionthe range module 504 can determine the granularity limitation 334 byreceiving or retrieving the granularity limitation 334 from the user 302or another device in the electronic system 100.

The range module 504 can also determine the overlapping range profile332 of FIG. 3. The range module 504 can determine the overlapping rangeprofile 332 based on the first range profile 328 and the second rangeprofile 330. The range module 504 can determine the overlapping rangeprofile 332 as the overlap region between the first range profile 328and the second range profile 330. The range module 504 can determine theoverlapping range profile 332 by comparing the coordinates of theboundaries associated with the first range profile 328 and the secondrange profile 330.

When the first range profile 328 is associated with the first sensor 310and the second range profile 330 is associated with the second sensor318, the range module 504 can use the transformation matrix 320associated with the first sensor 310 to transform the coordinates of theboundaries of the first range profile 328 from the sensor coordinatesystem 322 of the first sensor 310 into the uniform coordinate system324. In addition, the range module 504 can also use the transformationmatrix 320 associated with the second sensor 318 to transform thecoordinates of the boundaries of the second range profile 330 from thesensor coordinate system 322 of the second sensor 318 into the uniformcoordinate system 324.

The range module 504 can determine the overlapping range profile 332 bycomparing the boundaries of the first range profile 328 and theboundaries of the second range profile 330 in the uniform coordinatesystem 324. Moreover, when the first range profile 328 and the secondrange profile 330 are both associated with one of the sensors 103, suchas the first sensor 310 or the second sensor 318, the range module 504can determine the overlapping range profile 332 in the sensor coordinatesystem 322. The range module 504 can determine the overlapping rangeprofile 332 based on a predetermined distance below and above a locationor a distance associated with a division between modes, circuitry,device portions, ranges, granularity levels, measurement confidencelevel, or a combination thereof.

The range module 504 can store the first range profile 328, the secondrange profile 330, the overlapping range profile 332, or a combinationthereof in the first storage unit 214, the second storage unit 246, or acombination thereof. The range module 504 also store the granularitylimitation 334 associated with the first range profile 328, the secondrange profile 330, or a combination thereof in the first storage unit214, the second storage unit 246, or a combination thereof.

The range module 504 can be part of the first software 226, the secondsoftware 242, or a combination thereof. The first control unit 212 canexecute the first software 226, the second control unit 234 can executethe second software 242, or a combination thereof to determine the firstrange profile 328, the second range profile 330, the granularitylimitation 334, or a combination thereof.

Moreover, the range module 504 can also communicate the first rangeprofile 328, the second range profile 330, the granularity limitation334, or a combination thereof between devices through the firstcommunication unit 216, the second communication unit 236, or acombination thereof. After determining the first range profile 328, thesecond range profile 330, the granularity limitation 334, or acombination thereof, the control flow 500 can pass from the range module504 to the location module 506.

The location module 506 is configured to determine the user location 326of FIG. 3. The location module 506 can determine the user location 326based on a device location, the first sensor reading 306, the secondsensor reading 308, or a combination thereof. The location module 306can also determine the user location 326 based on the calibrationprocedure.

The location module 506 can determine the user location 326 based on thedevice location of a device carried by the user 302. For example, thelocation module 506 can determine the user location 326 based on thedevice location of the first device 102, the second device 106, or acombination thereof carried by the user 302. As a more specific example,the first device 102 can be a mobile device such as a cellular phone, atablet device, or a wearable device and the location module 506 candetermine the user location 326 based on the mobile device worn or heldby the user 302.

The location module 506 can determine the user location 326 based on thedevice location by using the first location unit 220 of FIG. 2, thesecond location unit 252 of FIG. 2, or a combination thereof. Inaddition, the location module 506 can determine the user location 326based on the device location by using a multilateration (MLAT) techniqueor a triangulation technique using the first communication unit 216, thesecond communication unit 236, or a combination thereof. For example,the location module 506 can use the GPS component of the first locationunit 220, the Bluetooth™ component of the first communication unit 216,or a combination thereof to determine the user location 326 based on thedevice location of the first device 102.

The location module 506 can also determine the user location 326 basedon the first sensor reading 306, the second sensor reading 308, or acombination thereof. The location module 506 can determine the userlocation 326 based on a distance measurement, a location estimation, asize measurement, or a combination thereof from the first sensor reading306, the second sensor reading 308, or a combination thereof. Forexample, the location module 506 can determine the user location 326based on the distance measurement, a location estimation, a sizemeasurement, or a combination thereof of a body part of the user 302such as a torso, a head, an arm, a leg, or a combination thereof.

Once the location module 506 has determined the user location 326, thelocation module 506 can also determine whether the user location 326 iswithin the first range profile 328, the second range profile 330, or theoverlapping range profile 332. The location module 506 can determinewhether the user location 326 is within the first range profile 328, thesecond range profile 330, or the overlapping range profile 332 bytransforming one or more coordinates of the user location 326 into theuniform coordinate system 324.

For example, the location module 506 can interact with thetransformation module 516 to transform the coordinates of the userlocation 326 in the sensor coordinate system 322 to the uniformcoordinate system 324 using the transformation matrix 320. The locationmodule 506 can then determine if the user location 326 is within thefirst range profile 328, the second range profile 330, or theoverlapping range profile 332 by comparing the coordinates of the userlocation 326 to the boundaries of the first range profile 328 and theboundaries of the second range profile 330.

The location module 506 can be part of the first software 226, thesecond software 242, or a combination thereof. The first control unit212 can execute the first software 226, the second control unit 234 canexecute the second software 242, or a combination thereof to determinethe user location 326.

Moreover, the location module 506 can also communicate the user location326 between devices through the first communication unit 216, the secondcommunication unit 236, or a combination thereof. After determining theuser location 326, the control flow 500 can pass from the locationmodule 506 to the gesture tracking module 508.

The gesture tracking module 508 is configured to determine one or moreinstances of the origination point 410 of FIG. 4 and the known terminalpoint 414 of FIG. 4. The gesture tracking module 508 can determine oneor more instances of the origination point 410 and the known terminalpoint 414 based on the user location 326, the first range profile 328,the second range profile 330, the first sensor reading 306, the secondsensor reading 308, the granularity limitation 334, or a combinationthereof.

The gesture tracking module 508 can use the user location 326 todetermine the presence of the user 302 in the first range profile 328,the second range profile 330, or the overlapping range profile 332. Aspreviously discussed, the first range profile 328 and the second rangeprofile 330 can refer to coverage areas associated with differentsensors. For example, the first range profile 328 can be associated withthe first sensor 310 and the second range profile 330 can be associatedwith the second sensor 318.

The gesture tracking module 508 can identify the first sensor reading306 when the user location 326 is determined to be in the first rangeprofile 328 and outside of the overlapping range profile 332. Thegesture tracking module 508 can identify the first sensor reading 306for capturing the gesture 304 using the first sensor 310. The firstsensor 310 can capture the coordinates of the gesture 304 in the sensorcoordinate system 322 of the first sensor 310.

The gesture tracking module 508 can identify the second sensor reading308 when the user location 326 is determined to be in the second rangeprofile 330 and outside of the overlapping range profile 332. Thegesture tracking module 508 can identify the second sensor reading 308for capturing the gesture 304 using the second sensor 318. The secondsensor 318 can capture the coordinates of the gesture 304 in the sensorcoordinate system 322 of the second sensor 318.

The gesture tracking module 508 can identify both the first sensorreading 306 and the second sensor reading 308 when the user location 326is in the overlapping range profile 332. In this instance, theoverlapping range profile 332 refers to a region of intersection betweenthe first range profile 328 associated with the first sensor 310 and thesecond range profile 330 associated with the second sensor 318.

Also, as previously discussed, both the first range profile 328 and thesecond range profile 330 can refer to coverage areas associated with thesame sensor. For example, the first range profile 328 can be associatedwith a near range of the first sensor 310, and the second range profile330 can be associated with a far range of the first sensor 310. In thisexample, the gesture tracking module 508 can identify the first sensorreading 306 when the user location 326 is in any of the first rangeprofile 328, the second range profile 330, or the overlapping rangeprofile 332.

The gesture tracking module 508 can identify the first sensor reading306 or the second sensor reading 308 by accessing a sensor log of thefirst sensor 310 or the second sensor 318, respectively. In addition,the gesture tracking module 508 can identify the first sensor reading306 or the second sensor 318 reading by interfacing with the firstsensor 310 or the second sensor 318, respectively, through anapplication programming interface (API). Moreover, the gesture trackingmodule 508 can identify the first sensor reading 306 or the secondsensor reading 308 by querying the first sensor 310 or the second sensor318, respectively.

The first sensor reading 306, the second sensor reading 308, or acombination thereof can include the coordinates of appendage positionsused to make the gesture 304. For example, the first sensor reading 306can include the coordinates of the elbow position 312 and thecoordinates of the hand position 314 in the sensor coordinate system322. Also, for example, the second sensor reading 308 can include thecoordinates of the hand position 314 and the fingertip position 316 inthe sensor coordinate system 322.

The gesture tracking module 508 can determine one or more instances ofthe origination point 410 and the known terminal point 414 based on thefirst sensor reading 306, the second sensor reading 308, and thegranularity limitation 334. The gesture tracking module 508 candetermine the known terminal point 414 based on a size of the appendageused to make the gesture 304 and the granularity limitation 334 of thefirst range profile 328, the second range profile 330, or a combinationthereof.

The gesture tracking module 508 can further include shape templates,orders of appendage connections, or a combination thereof predeterminedby the computing system 100. The gesture tracking module 508 can use thetemplates, the orders, or a combination thereof to identify the knownterminal point 414 as the most distal point on the user's body asrecognized in the sensor readings. The gesture tracking module 508 cansimilarly use the templates, the orders, or a combination thereof toidentify the origination point 410 as the immediately adjacent point orjoint on the user's body as recognized in the sensor readings, such as ahand relative to a finger or an elbow relative to a wrist.

The gesture tracking module 508 can determine the known terminal point414 by selecting the smallest appendage included as part of the gesture304 corresponding to or exceeding the granularity limitation 334. Thegesture tracking module 508 can select the smallest appendage includedas part of the gesture 304 from the first sensor reading 306, the secondsensor reading 308, or a combination thereof.

For example, the user location 326 can be in the first range profile 328and the granularity limitation 334 of the first range profile 328 can bethe size of an average human hand. In this example, the gesture trackingmodule 508 can determine the known terminal point 414 as the coordinatesof the hand of the user 302 used to make the gesture 304.

As an additional example, the user location 326 can be in the secondrange profile 330 and the granularity limitation 334 of the second rangeprofile 330 can be size of an average human fingertip. In this example,the gesture tracking module 508 can determine the known terminal point414 as the coordinates of the fingertip of the user 302 used to make thegesture 304.

The gesture tracking module 508 can determine the origination point 410as an appendage of the user 302 separate from the appendage associatedwith the known terminal point 414. For example, the gesture trackingmodule 508 can determine the origination point 410 as another appendageused to make the gesture 304 located proximal or closer to a torso orbody of the user 302. As another example, the gesture tracking module508 can determine the origination point 410 as the next largestappendage located proximal closer to the torso or body of the user 302and exceeding the granularity limitation 334.

When the user location 326 is determined to be in the overlapping rangeprofile 332, the gesture tracking module 508 can determine multipleinstances of the known terminal point 414 and the origination point 410based on the first sensor reading 306, the second sensor reading 308, ora combination thereof. The gesture tracking module 508 can determinedifferent instances of the known terminal point 414 or the originationpoint 410 in different sensor coordinate systems.

For example, the gesture tracking module 508 can determine one instanceof the known terminal point 414 as the fingertip position 316 of theuser 302 in the sensor coordinate system 322 of the first sensor 310. Inthis example, the gesture tracking module 508 can also determine anotherinstance of the known terminal point 414 as the fingertip position 316of the user 302 in the sensor coordinate system 322 of the second sensor318.

The gesture tracking module 508 can also determine different instancesof the known terminal point 414 or the origination point 410 based ondifferences in the granularity limitation 334 of the first range profile328 and the second range profile 330. For example, the granularitylimitation 334 of the first range profile 328 can be the size of a humanhand. In this example, the gesture tracking module 508 can determine oneinstance of the origination point 410 as the elbow of the user 302 andone instance of the known terminal point 414 as the hand of the user 302from the first sensor reading 306.

Also, for example, the granularity limitation 334 of the second rangeprofile 3330 can be the size of a human fingertip. In this example, thegesture tracking module 508 can determine another instance of theorigination point 410 as the hand of the user 302 and another instanceof the known terminal point 414 as the fingertip of the user 302 fromthe second sensor reading 308.

As previously discussed, the overlapping range profile 332 can refer toa region of overlap associated with the coverage areas for one sensor,such as the first sensor 310 or the second sensor 318. In this instance,the gesture tracking module 508 can also determine multiple instances ofthe known terminal point 414 and the origination point 410 based ondifferences in the granularity limitation 334 of the first range profile328 and the second range profile 330 associated with the single sensor.Also, when the overlapping range profile 332 refers to a region ofoverlap associated with the coverage areas for one sensor, the gesturetracking module 508 can obtain the coordinates of the appendagepositions from one of the first sensor reading 306 or the second sensorreading 308.

For example, the granularity limitation 334 of a near range representingthe first range profile 328 of the first sensor 310 can be the size of afingertip. Also, in this example, the granularity limitation 334 of afar range representing the second range profile 330 of the first sensor310 can be the size of a hand. Continuing with this example, the gesturetracking module 508 can determine one instance of the known terminalpoint 414 as the fingertip position 316 and another instance of theknown terminal point 414 as the hand position 314.

The first sensor reading 306, the second sensor reading 308, or acombination thereof can include the confidence score 338 of FIG. 3, thesensor update frequency 340, or a combination thereof. The first sensorreading 306 can include the confidence score 338 associated with eachappendage position captured by the first sensor 310. In addition, thesecond sensor reading 308 can include the confidence score 338associated with each appendage position captured by the second sensor318.

The first sensor reading 306, the second sensor reading 308, or acombination thereof can also include the sensor update frequency 340.The gesture tracking module 508 can determine the sensor updatefrequency 340 by counting each time the first sensor 310 or the secondsensor 318 undertakes a sensor reading. The gesture tracking module 508can determine the sensor update frequency 340 based on a number of timesthe first sensor 310 generates the first sensor reading 306, the numberof times the second sensor 318 generates the second sensor reading 308,or a combination thereof. The gesture tracking module 508 can furtherdetermine the sensor update frequency 340 based on a status report, asetting or a configuration, a mode or a state, or a combination thereofas reported by the corresponding sensor.

The gesture tracking module 508 can store the known terminal point 414,the origination point 410, the first sensor reading 306, the secondsensor reading 308, the confidence score 338, the sensor updatefrequency 340, or a combination thereof in the first storage unit 214,the second storage unit 246, or a combination thereof. The gesturetracking module 508 can be part of the first software 226, the secondsoftware 242, or a combination thereof. The first control unit 212 canexecute the first software 226, the second control unit 234 can executethe second software 242, or a combination thereof to determine the knownterminal point 414, the origination point 410, or a combination thereof.

Moreover, the gesture tracking module 508 can also communicate the knownterminal point 414, the origination point 410, or a combination thereofbetween devices through the first communication unit 216, the secondcommunication unit 236, or a combination thereof. After determining theknown terminal point 414, the origination point 410, or a combinationthereof, the control flow 500 can pass from the gesture tracking module508 to the inference module 510.

The inference module 510 is configured to calculate the inferredterminal point 426 of FIG. 4. The inference module 510 can calculate theinferred terminal point 426 for inferring an unknown appendage positionnot captured by the sensors 103. For example, the inference module 510can calculate the inferred terminal point 426 representing the fingertipposition 316 of the user 302.

The inference module 510 can calculate the inferred terminal point 426when an appendage position is obscured or unclear in a sensor frame, notprovided by the sensor, or a combination thereof. More specifically, theinference module 510 can calculate the inferred terminal point 426 whenan appendage position is obscured or unclear in the second sensor frame404 of FIG. 4. The inference module 510 can calculate the inferredterminal point 426 in the second sensor frame 404 by analyzing thesecond sensor frame 404 and the first sensor frame 402 of FIG. 4.

For example, the first sensor frame 402 can be an image captured by oneof the sensors 103 depicting an appendage of the user 302 at an initialpoint in time. In this example, the second sensor frame 404 can be animage captured by the same instance of the sensors 103 depicting thesame appendage of the user 302 at a latter point in time.

The first sensor frame 402 and the second sensor frame 404 can beincluded in sensor readings identified from the first sensor 310, thesecond sensor 318, or a combination thereof. More specifically, thefirst sensor frame 402 and the second sensor frame 404 can be includedin the first sensor reading 306 associated with the first sensor 310. Inaddition, the first sensor frame 402 and the second sensor frame 404 canbe included in the second sensor reading 308 associated with the secondsensor 318.

The inference module 510 can interact with the gesture tracking module508 to determine the first origin point 412 of FIG. 4 and the knownterminal of FIG. 4 from the first sensor frame 402 included in the firstsensor reading 306, the second sensor reading 308, or a combinationthereof. In addition, the inference module 510 can interact with thegesture tracking module 508 to determine the second origin point 424 ofFIG. 4 from the second sensor frame 404 included in the first sensorreading 306, the second sensor reading 308, or a combination thereof.

The inference module 510 can include an orientation module 512, a pointinferring module 514, or a combination thereof. The orientation module512 is configured to determine the first appendage orientation 406 ofFIG. 4, the second appendage orientation 416 of FIG. 4, or a combinationthereof. The orientation module 512 can determine the first appendageorientation 406 based on the first sensor frame 402. The orientationmodule 512 can determine the second appendage orientation 416 based onthe second sensor frame 404.

The orientation module 512 can determine the first appendage orientation406 by determining the first normal vector 408 of FIG. 4. Theorientation module 512 can determine the second appendage orientation416 by determining the second normal vector 418 of FIG. 4. For example,the orientation module 512 can determine the first normal vector 408,the second normal vector 418, or a combination thereof by determining avector orthogonal to a palm surface, an opisthenar surface, a wristsurface, or an elbow surface of the user 302.

Also for example, the orientation module 512 can determine the firstnormal vector 408, the second normal vector 418, or a combinationthereof using one or more shape profiles or templates. Also for example,the orientation module 512 can determine the first normal vector 408,the second normal vector 418, or a combination thereof by receiving thenormal vector readings from the corresponding sensor.

The orientation module 512 can determine the first normal vector 408 bycalculating a vector orthogonal to an appendage surface depicted in thefirst sensor frame 402. The orientation module 512 can determine thesecond normal vector 418 by calculating a vector orthogonal to the sameappendage surface used to determine the first normal vector 408 in thesecond sensor frame 404.

The orientation module 512 can use the first control unit 212, thesecond control unit 234, or a combination thereof to calculate the firstnormal vector 408, the second normal vector 418, or a combinationthereof. The orientation module 512 can use the first control unit 212,the second control unit 234, or a combination thereof to calculate thefirst normal vector 408 or the second normal vector 418 using a contouror surface outline of the appendage depicted in the first sensor frame402 or the second sensor frame 404, respectively.

In addition, the orientation module 512 can use the first communicationinterface 228 of FIG. 2, the second communication interface 250 of FIG.2, or a combination thereof to receive or retrieve the first normalvector 408, the second normal vector 418, or a combination thereof fromthe sensors 103. For example, the first normal vector 408 and the secondnormal vector 418 can be included in communications received orretrieved from the first sensor 310, the second sensor 318, or acombination thereof.

The point inferring module 514 is configured to calculate the inferredterminal point 426. The point inferring module 514 can calculate theinferred terminal point 426 by treating one or more appendages used tomake the gesture 304 as a rigid articulating chain or object unchangingbetween frames or readings. The point inferring module 514 can calculatethe inferred terminal point 426 based on the first origin point 412, thesecond origin point 424, the known terminal point 414, the firstappendage orientation 406, and the second appendage orientation 416.

The point inferring module 514 can calculate the inferred terminal point426 by calculating the angle of rotation 422 of FIG. 4 and the axis ofrotation 420 of FIG. 4. The point inferring module 514 can calculate theangle of rotation 422 based on the first appendage orientation 406 andthe second appendage orientation 416. More specifically, the pointinferring module 514 can calculate the angle of rotation 422 by takingthe cross product of the first normal vector 408 and the second normalvector 418. The angle of rotation 422 can be referred to as “{rightarrow over (a)}”, the first normal vector 408 can be referred to as“N1”, and the second normal vector 418 can be referred to as “N2”. Thepoint inferring module 514 can calculate the angle of rotation 422according to Equation 1 below.

{right arrow over (a)}=N1×N2  (Equation 1)

The point inferring module 514 can also calculate the axis of rotation420. The point inferring module 514 can calculate the axis of rotation420 by first taking the sine of the angle of rotation 422. The sine ofthe angle of rotation 422 can be referred to as “S”. The point inferringmodule 514 can calculate the axis of rotation 420 by dividing the angleof rotation 422 by the sine of the angle of rotation 422. The axis ofrotation 420 can be referred to as “A”. The point inferring module 514can calculate the axis of rotation 420 according to Equation 2 below.

{right arrow over (A)}={right arrow over (a)}/S  (Equation 2)

The point inferring module 514 can calculate the inferred terminal point426 by applying a rotation formula to the first origin point 412, thesecond origin point 424, the known terminal point 414, the angle ofrotation 422, and the axis of rotation 420. For example, the pointinferring module 514 can calculate the inferred terminal point 426 byapplying Rodrigues' rotation formula to the first origin point 412, thesecond origin point 424, the known terminal point 414, the angle ofrotation 422, and the axis of rotation 420.

As a more specific example, the first origin point 412 can representcoordinates of the hand position 314 depicted in the first sensor frame402. The coordinates of the hand position 314 representing the firstorigin point 412 can be referred to as “H1”. In addition, the secondorigin point 424 can represent coordinates of the hand position 314depicted in the second sensor frame 404. The coordinates of the handposition 314 representing the second origin point 412 can be referred toas “H2”.

Also, in this example, the known terminal point 414 can representcoordinates of the fingertip position 316 depicted in the first sensorframe 402. The fingertip position 316 can be referred to as “F1”.Moreover, “C” can refer to the cosine of the angle of rotation 422.

Continuing with this example, the inferred terminal point 426 can bereferred to as “F2”. The point inferring module 514 can calculate theinferred terminal point 426 or “F2” using Equation 3 below.

F2=H2+(C*(F1−H1))+{right arrow over (A)}×(S*(F1−H1))+((1−C)*{right arrowover (A)}*({right arrow over (A)}·(F1−H1)))  (Equation 3)

The inference module 510 can be part of the first software 226, thesecond software 242, or a combination thereof. The first control unit212 can execute the first software 226, the second control unit 234 canexecute the second software 242, or a combination thereof to calculatethe inferred terminal point 426.

Moreover, the inference module 510 can also communicate the inferredterminal point 426 between devices through the first communication unit216, the second communication unit 236, or a combination thereof. Aftercalculating the inferred terminal point 426, the control flow 500 canpass from the inference module 510 to the transformation module 516.

The transformation module 516 is configured to calculate one or moreinstances of the transformed origin point 354 of FIG. 3, the transformedterminal point 356 of FIG. 3, or a combination thereof. Thetransformation module 516 can calculate the transformed origin point 354by transforming the coordinates of one or more instances of theorigination point 410 from the sensor coordinate system 322 to theuniform coordinate system 324.

The transformation module 516 can calculate one or more instances of thetransformed origin point 354 by applying the transformation matrix 320to the coordinates of one or more instances of the origination point410. More specifically, the transformation module 516 can calculate thetransformed origin point 354 by multiplying the transformation matrix320 with the coordinates of one or more instances of the originationpoint 410 in the sensor coordinate system 322. The resulting instance ofthe transformed origin point 354 can be a set of coordinates in theuniform coordinate system 324.

The transformation module 516 can also calculate one or more instancesof the transformed terminal point 356 by transforming the coordinates ofthe known terminal point 414, the inferred terminal point 426, or acombination thereof from the sensor coordinate system 322 to the uniformcoordinate system 324. The transformation module 516 can calculate thetransformed terminal point 356 by applying the transformation matrix 320to the coordinates of the known terminal point 414, the inferredterminal point 426, or a combination thereof in the sensor coordinatesystem 322.

More specifically, the transformation module 516 can calculate thetransformed terminal point 356 by multiplying the transformation matrix320 with the coordinates of the known terminal point 414, the inferredterminal point 426, or a combination thereof. The resulting instance ofthe transformed terminal point 356 can be a set of coordinates in theuniform coordinate system 324.

The transformation module 516 can be part of the first software 226, thesecond software 242, or a combination thereof. The first control unit212 can execute the first software 226, the second control unit 234 canexecute the second software 242, or a combination thereof to calculateone or more instances of the transformed origin point 354, thetransformed terminal point 356, or a combination thereof.

Moreover, the transformation module 516 can also communicate one or moreinstances of the transformed origin point 354, the transformed terminalpoint 356, or a combination thereof between devices through the firstcommunication unit 216, the second communication unit 236, or acombination thereof. After calculating one or more instances of thetransformed origin point 354, the transformed terminal point 356, or acombination thereof, the control flow 500 can pass from thetransformation module 516 to the vector projection module 518.

The vector projection module 518 is configured to determine the firstposition indicator 352 of FIG. 3, the second position indicator 358 ofFIG. 3, or a combination thereof. The vector projection module 518 candetermine the first position indicator 352, the second positionindicator 358, or a combination thereof for calculating the inputs usedto calculate the blended position indicator 350 of FIG. 3.

The vector projection module 518 can determine the first positionindicator 352 based on an intersection of the first vector 360 of FIG. 3and a coordinate plane representing a screen of a display interface inthe uniform coordinate system 324. For example, the vector projectionmodule 518 can determine the first position indicator 352 based on theintersection of the first vector 360 and the coordinate planerepresenting the screen of the first display interface 230 in theuniform coordinate system 324.

The vector projection module 518 can calculate the first vector 360 fordetermining the first position indicator 352. The first vector 360 canrepresent a possible instance of the direction of the gesture 304.

The vector projection module 518 can calculate the first vector 360based on the transformed origin point 354 and the transformed terminalpoint 356 associated with the first sensor reading 306, the secondsensor reading 308, or a combination thereof. The transformed originpoint 354 and the transformed terminal point 356 can be coordinates inthe uniform coordinate system 324.

The transformed origin point 354, the transformed terminal point 356, ora combination thereof can represent transformed instances of theappendage positions obtained from the first sensor reading 306, thesecond sensor reading 308, or a combination thereof. For example, thevector projection module 518 can calculate the first vector 360 based onthe transformed origin point 354 representing the elbow position 312 andthe transformed terminal point 356 representing the hand position 314obtained from the first sensor reading 306.

The vector projection module 518 can calculate the first vector 360 as avector from the transformed origin point 354 extending through thetransformed terminal point 356. The vector projection module 518 canthen extend the length of the first vector 360 until the first vector360 intersects with the coordinate plane representing the screen of thedisplay interface. The vector projection module 518 can determine thefirst position indicator 352 as the intersection of the first vector 360and the coordinate plane representing the screen of the displayinterface in the uniform coordinate system 324.

The vector projection module 518 can determine the second positionindicator 358 based on an intersection of the second vector 362 of FIG.3 and the coordinate plane representing the screen of the displayinterface in the uniform coordinate system 324. For example, the vectorprojection module 518 can determine the second position indicator 358based on the intersection of the second vector 362 and the coordinateplane representing the screen of the first display interface 230 in theuniform coordinate system 324.

The vector projection module 518 can calculate the second vector 362 fordetermining the second position indicator 358. The second vector 362 canrepresent another possible instance of the direction of the gesture 304.For example, the second vector 362 can represent the direction of thegesture 304 as captured by the second sensor 318. As an additionalexample, the second vector 362 can represent another possible directionof the gesture 304 as captured by the first sensor 310 when the user 302is in the overlapping range profile 332.

The vector projection module 518 can calculate the second vector 362based on additional instances of the transformed origin point 354 andthe transformed terminal point 356. The vector projection module 518 cancalculate the second vector 362 based on the transformed origin point354 representing the hand position 314 and the transformed terminalpoint 356 representing the fingertip position 316 obtained from thesecond sensor reading 308. In addition, the vector projection module 518can calculate the second vector 362 based on the transformed originpoint 354 representing the hand position 314 and the transformedterminal point 356 representing the inferred terminal point 426.

The vector projection module 518 can calculate the second vector 362 byconnecting a vector from the transformed origin point 354 toward thetransformed terminal point 356. The vector projection module 518 canthen extend the length of the second vector 362 until the second vector362 intersects with the coordinate plane representing the screen of thedisplay interface. The vector projection module 518 can determine thesecond position indicator 358 as the intersection of the second vector362 and the coordinate plane representing the screen of the displayinterface in the uniform coordinate system 324.

The vector projection module 518 can be part of the first software 226,the second software 242, or a combination thereof. The first controlunit 212 can execute the first software 226, the second control unit 234can execute the second software 242, or a combination thereof todetermine the first position indicator 352, the second positionindicator 358, or a combination thereof.

Moreover, the vector projection module 518 can also communicate thefirst position indicator 352, the second position indicator 358, or acombination thereof between devices through the first communication unit216, the second communication unit 236, or a combination thereof. Afterdetermining the first position indicator 352, the second positionindicator 358, or a combination thereof, the control flow 500 can passfrom the vector projection module 518 to the blending module 520.

The blending module 520 is configured to calculate the blended positionindicator 350 of FIG. 3. The blending module 520 can calculate theblended position indicator 350 for estimating the direction of thegesture 304 made by the user 302.

The blending module 520 can include a weight module 522, a cursor module524, or a combination thereof. The weight module 522 is configured tocalculate the first weight 344 of FIG. 3, the second weight 346 of FIG.3, or a combination thereof. The blending module 520 can calculate theblended position indicator 350 based on the first sensor reading 306,the second sensor reading 308, the first weight 344, the second weight346, or a combination thereof.

The weight module 522 can calculate the first weight 344 of FIG. 3, thesecond weight 346 of FIG. 3, or a combination thereof. The weight module522 can calculate the first weight 344 or the second weight 346 forincreasing or decreasing the contribution of the first sensor reading306 or the second sensor reading 308, respectively, to the calculationof the blended position indicator 350.

The weight module 522 can calculate the first weight 344 associated withthe first sensor reading 306. The weight module 522 can calculate thefirst weight 344 based on the first sensor characteristic 336 of FIG. 3.The first sensor characteristic 336 can include the confidence score 338of FIG. 3 and the sensor update frequency 340 of FIG. 3 associated withthe first sensor 310.

The weight module 522 can calculate the second weight 346 associatedwith the second sensor reading 308. The weight module 522 can calculatethe second weight 346 based on the second sensor characteristic 342 ofFIG. 3. The second sensor characteristic 342 can include the confidencescore 338 and the sensor update frequency 340 associated with the secondsensor 318.

In addition, the sensor update frequency 340 can be a measure of thenumber of times one of the sensors 103 generates the sensor readingwithin a predetermined time period. For example, the sensor updatefrequency 340 can be a measure of the number of times the first sensor310 generates the first sensor reading 306 within one second.

The weight module 522 can calculate the first weight 344 by identifyingthe confidence score 338 associated with the first sensor reading 306and the sensor update frequency 340 associated with the first sensor310. The weight module 522 can identify the confidence score 338associated with the first sensor reading 306 by receiving or retrievingthe confidence score 338 from the first sensor 310. For example, theweight module 522 can receive or retrieve the confidence score 338associated with the appendage positions captured by the first sensorreading 306 such as the elbow position 312 and the hand position 314.

The confidence score 338 can include a numeric value expressed as apercentage. The confidence score 338 can also be referred to as“Confidence_n” where “n” represents a sensor number such as the firstsensor 310 (n=1) or the second sensor 318 (n=2).

The weight module 522 can also calculate the first weight 344 or thesecond weight 346 by identifying the sensor update frequency 340associated with the first sensor 310 or the second sensor 318,respectively. The weight module 522 can identify the sensor updatefrequency 340 associated with the first sensor by recording an elapsedtime between the latest instance of the first sensor reading 306 and theimmediately preceding instance of the first sensor reading 306.

The weight module 522 can also identify the sensor update frequency 340associated with the second sensor 318 by recording or calculating theelapsed time between the latest instance of the second sensor reading308 and the immediately preceding instance of the second sensor reading308. The elapsed time can be referred to as “dt_n”.

The weight module 522 can calculate the first weight 344 or the secondweight 346 by incrementing or decrementing a previous instance of thefirst weight 344 or a previous instance of the second weight 346,respectively. The weight module 522 can increment previous instances ofthe first weight 344 or the second weight 346 by adding a weightenhancer to the previous instance of the first weight 344 or the secondweight 346.

The weight enhancer can be a fixed numerical value predetermined by theelectronic system 100, the sensors 103, or a combination thereof. Theweight module 522 can increment previous instances of the first weight344 or the second weight 346 by the weight enhancer when the electronicsystem 100 identifies a new sensor reading from the first sensor 310 orthe second sensor 318, respectively. The weight module 522 can alsomultiply the confidence score 338 by the weight enhancer.

More specifically, the weight module 522 can increment the previousinstance of the first weight 344 by the weight enhancer when the gesturetracking module 508 identifies a new instance of the first sensorreading 306 from the first sensor 310. In addition, the weight module522 can increment the previous instance of the second weight 346 by theweight enhancer when the gesture tracking module 508 identifies a newinstance of the second sensor reading 308 from the second sensor 318.

The first weight 344 or the second weight 346 can be referred to as“Weight_n”, the previous instance of the first weight 344 or the secondweight 346 can be referred to as “PreviousWeight_n”, and the weightenhancer can be referred to as “dW”. The weight module 522 can calculatethe first weight 344 or the second weight 346 by incrementing previousinstances of the first weight 344 or the second weight 346,respectively, according to Equation 4 below.

Weight_n=PreviousWeight_n+(dW*Confidence_n)  (Equation 4)

The weight module 522 can also calculate the first weight 344, thesecond weight 346, or a combination thereof by decrementing weightsassociated with all other sensors not providing a sensor reading. Forexample, the electronic system 100 can receive only the first sensorreading 306 from the first sensor 310 at a particular moment in time. Inthis example, the electronic system 100 can increment the first weight344 of the first sensor 310 while decrementing the second weight 346 ofthe second sensor 318.

The weight module 522 can decrement the first weight 344 or the secondweight 346 by decrementing previous instances of the first weight 344 orthe second weight 346, respectively. The weight module 522 can decrementprevious instances of the first weight 344 or the second weight 346,respectively, based on the sensor update frequency 340. The weightmodule 522 can decrement previous instances of the first weight 344 orthe second weight 346 by multiplying previous instances of the firstweight 344 or the second weight 346, respectively, by an exponential ofa rate of decay multiplied by the sensor update frequency 340.

The rate of decay can be referred to as “Rate”. The weight module 522can calculate the first weight 344 or the second weight 346 bydecrementing previous instances of the first weight 344 or the secondweight 346, respectively, according to Equation 5 below.

Weight_n=PreviousWeight_n*exp(Rate*dt)  (Equation 5)

The weight module 522 can increment the first weight 344, the secondweight 346, or a combination thereof according to Equation 4 while alsodecrementing all other sensors not providing a sensor update accordingto Equation 5. The weight module 522 can also establish a minimum cutoffthreshold for weights associated with the sensors 103.

The weight module 522 can establish a minimum cutoff thresholdassociated with the first weight 344, the second weight 346, or acombination thereof. The minimum cutoff threshold can be a numericalvalue below which a sensor can be considered inactive for purposes ofproviding sensor updates. The weight module 522 can ignore sensors wherethe weights associated with the sensors 103 fall below the minimumcutoff threshold.

The weight module 522 can further calculate the first weight 344, thesecond weight 346, or a combination thereof based on environmentalfactors such as room lighting measurements or time of day, anorientation or body position of the user 302, or a combination thereof.

The weight module 522 can further calculate the first weight 344, thesecond weight 346, or a combination thereof based on a usercharacteristic, such as age, size, preference, gender, or a combinationthereof of the user 302. The weight module 522 can further calculate thefirst weight 344, the second weight 346, or a combination thereof basedon the user location 326 relative to one or more of the sensors 103,such as a presence of the user 302 in the first range profile 328 or thesecond range profile 330.

The weight module 522 can further calculate the first weight 344, thesecond weight 346, or a combination thereof using the various factorsdescribed above as inputs. The weight module 522 can include a method, aprocess, an equation, or a combination thereof utilizing one or more ofthe inputs described above to calculate the first weight 344, the secondweight 346, or a combination thereof. For example, the weight module 522can include one or more equations similar to Equations (4)-(5) utilizingone or more of the other inputs described above.

The weight module 522 can store the first weight 344, the second weight346, or a combination thereof in the first storage unit 214, the secondstorage unit 246, or a combination thereof. The weight module 522 canupdate the first weight 344, the second weight 346, or a combinationthereof after the electronic system 100 receives a sensor reading fromone of the sensors 103.

For illustrative purposes, the electronic system 100 is described withthe first sensor 310 and the second sensor 318, although it isunderstood that the electronic system 100 can include three or more ofthe sensors 103. In the instance where the electronic system 100includes three or more of the sensors 103, weights can be calculated forall non-reporting sensors as soon as a sensor reading is received forone of the sensors 103.

The blending module 520 can calculate the blended position indicator350. The blending module 520 can calculate the blended positionindicator 350 based on the first position indicator 352, the firstweight 344, the second position indicator 358, the second weight 346,the user location 326, or a combination thereof. The blending module 520can calculate the blended position indicator 350 for combining multipleinstances of the gesture 304 captured by the first sensor 310, thesecond sensor 318, or a combination thereof in order to estimate thedirection of the gesture 304.

For example, the blending module 520 can calculate the blended positionindicator 350 for combining the gesture 304 captured by the first sensor310 and the gesture 304 captured by the second sensor 318. As anadditional example, the blending module 520 can calculate one instanceof the gesture 304, such as the elbow position 312 and the hand position314, captured by one of the sensors 103 and another instance of thegesture 304, such as the hand position 314 and the fingertip position316, captured by the same instance of the sensors 103.

The blending module 520 can calculate the blended position indicator 350by calculating a weighted sum of the first position indicator 352 andthe second position indicator 358. The blending module 520 can calculatethe weighted average or mean of the first position indicator 352 and thesecond position indicator 358 by first applying the first weight 344 tothe first position indicator 352 and applying the second weight 346 tothe second position indicator 358. The blending module 520 can thencalculate the blended position indicator 350 by summing the resultingproducts.

For example, the blending module 520 can apply the first weight 344 tothe first position indicator 352 by multiplying the first weight 344with the coordinates of the first position indicator 352 in the uniformcoordinate system 324. Also, for example, the blending module 520 canapply the second weight 346 to the second position indicator 358 bymultiplying the second weight 346 with the coordinates of the secondposition indicator 358. The blending module 520 can calculate theblended position indicator 350 by summing the product of the firstweight 344 and the first position indicator 352 and the product of thesecond weight 346 and the second position indicator 358.

The blending module 520 can also calculate the blended positionindicator 350 by calculating a weighted harmonic mean, a weightedarithmetic mean, or a combination thereof using the first positionindicator 352, the second position indicator 358, the first weight 344,and the second weight 346.

The blending module 520 can calculate the blended position indicator 350based on the user location 326 in the overlapping range profile 332.When the overlapping range profile 332 refers to a region ofintersection between the first range profile 328 associated with thefirst sensor 310 and the second range profile 330 associated with thesecond sensor 318, the blending module 520 can calculate the blendedposition indicator 350 based on the first position indicator 352calculated from the first sensor reading 306 and the second positionindicator 358 calculated from appendage positions captured by the secondsensor reading 308.

When the overlapping range profile 332 refers to an overlap regionbetween the first range profile 328 and the second range profile 330associated with one of the first sensor 310 or the second sensor 318,the blending module 520 can calculate the blended position indicator 350based on the first position indicator 352 calculated from one set ofappendage positions, such as the elbow position 312 and the handposition 314, and the second position indicator 358 calculated fromanother set of appendage positions, such as the hand position 314 andthe fingertip position 316.

The cursor module 524 is configured to generate the cursor 348 of FIG. 3at the blended position indicator 350. The cursor module 524 cangenerate the cursor 348 at the blended position indicator 350 forcommunicating the blended position indicator 350 to the user 302 of theelectronic system 100. More specifically, the cursor module 524 cangenerate the cursor 348 at the blended position indicator 350 for theuser 302 to control or manipulate a graphic or user interface depictedon a display interface such as the first display interface 230, thesecond display interface 240, or a combination thereof.

The cursor module 524 can generate the cursor 348 as a graphic icon onthe first display interface 230, the second display interface 240, or acombination thereof. The cursor module 524 can generate the graphic iconrepresenting the cursor 348 at a display coordinate corresponding to theblended position indicator 350. The cursor module 524 can generate thecursor 348 on the first display interface 230 when the user 302undertakes the gesture 304 at the first display interface 230.

The blending module 520 can be part of the first software 226, thesecond software 242, or a combination thereof. The first control unit212 can execute the first software 226, the second control unit 234 canexecute the second software 242, or a combination thereof to calculatethe blended position indicator 350 and generate the cursor 348 at theblended position indicator 350. Moreover, the blending module 520 canalso communicate the blended position indicator 350 and the cursor 348between devices through the first communication unit 216, the secondcommunication unit 236, or a combination thereof.

The physical transformation of displaying the cursor 348 at the blendedposition indicator 350 results in movement in the physical world, suchas people using the electronic system 100 to control display interfacesremotely. As the movement in the physical world occurs, the movementitself generates additional instances of the cursor 348 and to continuedmovement in the physical world.

It has been discovered that calculating the blended position indicator350 based on the first sensor reading 306, the second sensor reading308, or a combination thereof provides a more accurate mechanism forcontrolling a display interface such as the first display interface 230,the second display interface 240, or a combination thereof. Morespecifically, the electronic system 100 can use the blended positionindicator 350 to approximate the direction of the gesture 304 made bythe user 302. The electronic system 100 can more accurately approximatethe direction of the gesture 304 based on readings from multipleinstances of the sensors 103 rather than relying on readings from onlyone of the sensors 103.

It has further been discovered that calculating the blended positionindicator 350 based on the first sensor reading 306, the second sensorreading 308, or a combination thereof enhances the usability ofdifferent sensors provided by different sensor vendors or manufacturers.For example, the electronic system can blend or combine readings fromthe first sensor 310 and the second sensor 318 for ensuring a usergesture, such as the gesture 304, is captured by the second sensor 318when the user gesture is outside of the first range profile 328 of thefirst sensor 310.

It has been discovered that calculating the blended position indicator350 based on the first origin point 412, the known terminal point 414,the second origin point 424, and the inferred terminal point 426 providean improved mechanism for controlling a display interface when the user302 is gesturing in a rapid or unpredictable manner. In this instance,the electronic system 100 can calculate the inferred terminal point 426,representing an obscured or hard to detect appendage position, based onknown appendage positions, the first appendage orientation 406, and thesecond appendage orientation 416. The electronic system 100 cancalculate the blended position indicator 350 based on the inferredterminal point 426 to prevent the cursor 348 from skipping ordisappearing when an appendage position of the user 302 is not capturedby any of the sensors 103.

It has been discovered that calculating the blended position indicator350 by applying the first weight 344 to the first position indicator 352and applying the second weight 346 to the second position indicator 358provides for a more accurate mechanism for controlling a displayinterface by taking into account the confidence score 338 and the sensorupdate frequency 340 of the sensors 103. By applying more weight to thesensors 103 which provide more frequent and more confident sensorreadings, the electronic system 100 can ensure the blended positionindicator 350 reflects the contribution of the sensors 103 capturing thegesture 304 with the most confidence and most often.

The modules describes in this application can be ordered or partitioneddifferently. For example, certain modules can be combined. Each of themodules can also operate individually and independently of the othermodules. Furthermore, data generated in one module can be used byanother module without being directly coupled to each other.

The modules described in this application can be implemented by hardwarecircuitry or hardware acceleration units (not shown) in the controlunits. The modules described in this application can also be implementedby separate hardware units (not shown), including hardware circuitry,outside the control units but with the first device 102 or the seconddevice 106.

For illustrative purposes, the various modules have been described asbeing specific to the first device 102, the second device 106, or acombination thereof. However, it is understood that the modules can bedistributed differently. For example, the various modules can beimplemented in a different device, or the functionalities of the modulescan be distributed across multiple devices.

The modules described in this application can be implemented asinstructions stored on a non-transitory computer readable medium to beexecuted by a first control unit 412, the second control unit 434, or acombination thereof. The non-transitory computer medium can include thefirst storage unit 414, the second storage unit 446, or a combinationthereof. The first storage unit 414, the second storage unit 446, or acombination thereof, or a portion therein can also be made removablefrom the first device 102, the second device 106, or a combinationthereof.

The non-transitory computer readable medium can include non-volatilememory, such as a hard disk drive, non-volatile random access memory(NVRAM), solid-state storage device (SSD), compact disk (CD), digitalvideo disk (DVD), or universal serial bus (USB) flash memory devices.The non-transitory computer readable medium can be integrated as a partof the navigation system 100 or installed as a removable portion of thenavigation system 100.

As a more specific example, one or more modules described above can bestored in the non-transitory memory medium for distribution to adifferent system, a different device, a different user, or a combinationthereof. Also as a more specific example, the modules described abovecan be implemented or stored using a single hardware unit, such as achip or a processor, or across multiple hardware units.

Referring now to FIG. 6, therein is shown an exemplary flow chart of amethod 600 of operation of the electronic system 100 of FIG. 1 in afurther embodiment. In one example embodiment, the electronic system 100can implement the control flow 500 of FIG. 5.

The method 600 can include identifying, with the control unit 212 ofFIG. 2, the first sensor reading 306 of FIG. 3 for capturing the gesture304 of FIG. 3 directed at the first display interface 230 of FIG. 2using the first range profile 328 of FIG. 3 in a block 602. The method600 can also include identifying the second sensor reading 308 of FIG. 3for capturing the gesture 304 directed at the first display interface230 using the second range profile 330 of FIG. 3 in a block 604.

The method 600 can further include calculating the blended positionindicator 350 of FIG. 3 based on the first sensor reading 306, thesecond sensor reading 308, or a combination thereof in a block 606. Themethod 600 can also include communicating, with the communicationinterface 228 of FIG. 2 coupled to the control unit 212, the blendedposition indicator 350 by generating the cursor 348 of FIG. 3 at theblended position indicator 350 in a block 608.

The method 600 can further include determining the overlapping rangeprofile 332 of FIG. 3 involving the first range profile 328 and thesecond range profile 330 in a block 610. The block 610 can also includeidentifying the first sensor reading 306 for capturing the gesture 304made within the overlapping range profile 332; identifying the secondsensor reading 308 for capturing the gesture 304 made within theoverlapping range profile 332; and calculating the blended positionindicator 350 based on the overlapping range profile 332, the firstsensor reading 306, and the second sensor reading 308.

The method 600 can further include calculating the inferred terminalpoint 426 of FIG. 4 based on the first origin point 412 of FIG. 4, theknown terminal point 414 of FIG. 4, and the second origin point 424 ofFIG. 4 in a block 612. The block 612 can also include determining thefirst origin point 412 and the known terminal point 414 based on thefirst sensor frame 402 of FIG. 4 and determining the second origin point424 of FIG. 4 based on the second sensor frame 404 of FIG. 4. The block612 can further include calculating the blended position indicator 350based on the first origin point 412, the known terminal point 414, thesecond origin point 424, and the inferred terminal point 426.

The method 600 can further include calculating the first weight 344 ofFIG. 3 associated with the first sensor reading 306 based on the firstsensor characteristic 336 of FIG. 3 and calculating the second weight346 of FIG. 3 associated with the second sensor reading 308 based on thesecond sensor characteristic 342 of FIG. 3 in a block 614. The block 614can include calculating the blended position indicator 350 by applyingthe first weight 344 to a first position indicator 352 and applying thesecond weight 346 to a second position indicator 358.

The method 600 can further include calculating the first vector 360 ofFIG. 3 for representing the gesture 304 directed at the displayinterface 230 and calculating the second vector 362 of FIG. 3 forrepresenting the gesture 304 directed at the display interface 230 in ablock 616. The block 616 can also include calculating the blendedposition indicator 350 based on the first vector 360 and the secondvector 362.

The resulting method, process, apparatus, device, product, and/or systemis straightforward, cost-effective, uncomplicated, highly versatile,accurate, sensitive, and effective, and can be implemented by adaptingknown components for ready, efficient, and economical manufacturing,application, and utilization. Another important aspect of the embodimentof the present invention is that it valuably supports and services thehistorical trend of reducing costs, simplifying systems, and increasingperformance. These and other valuable aspects of the embodiment of thepresent invention consequently further the state of the technology to atleast the next level.

While the invention has been described in conjunction with a specificbest mode, it is to be understood that many alternatives, modifications,and variations will be apparent to those skilled in the art in light ofthe aforegoing description. Accordingly, it is intended to embrace allsuch alternatives, modifications, and variations that fall within thescope of the included claims. All matters set forth herein or shown inthe accompanying drawings are to be interpreted in an illustrative andnon-limiting sense.

What is claimed is:
 1. An electronic system comprising: a control unitconfigured to: identify a first sensor reading for capturing a gesturedirected at a display interface using a first range profile; identify asecond sensor reading for capturing the gesture directed at the displayinterface using a second range profile; calculate a blended positionindicator based on the first sensor reading, the second sensor reading,or a combination thereof; and a communication interface, coupled to thecontrol unit, configured to communicate the blended position indicatorby generating a cursor at the blended position indicator.
 2. The systemas claimed in claim 1 wherein the control unit is further configured to:determine an overlapping range profile involving the first range profileand the second range profile; identify the first sensor reading forcapturing the gesture made within the overlapping range profile;identify the second sensor reading for capturing the gesture made withinthe overlapping range profile; and calculate the blended positionindicator based on the overlapping range profile, the first sensorreading, and the second sensor reading.
 3. The system as claimed inclaim 1 wherein the control unit is further configured to: determine afirst origin point and a known terminal point based on a first sensorframe; determine a second origin point based on a second sensor frame;calculate an inferred terminal point based on the first origin point,the known terminal point, and the second origin point; and calculate theblended position indicator based on the first origin point, the knownterminal point, the second origin point, and the inferred terminalpoint.
 4. The system as claimed in claim 1 wherein the control unit isfurther configured to: calculate a first weight associated with thefirst sensor reading based on a first sensor characteristic; calculate asecond weight associated with the second sensor reading based on asecond sensor characteristic; and calculate the blended positionindicator by applying the first weight to a first position indicator andapplying the second weight to a second position indicator.
 5. The systemas claimed in claim 1 wherein the control unit is further configured to:calculate a first vector for representing the gesture directed at thedisplay interface; calculate a second vector for representing thegesture directed at the display interface; and calculate the blendedposition indicator based on the first vector and the second vector. 6.The system as claimed in claim 1 wherein the control unit is furtherconfigured to: calculate a first weight by identifying a confidencescore associated with the first sensor reading and a sensor updatefrequency associated with a first sensor; calculate a second weight byidentifying the confidence score associated with the second sensorreading and the sensor update frequency associated with a second sensor;and calculate the blended position indicator by applying the firstweight to a first position indicator and applying the second weight to asecond position indicator.
 7. The system as claimed in claim 1 whereinthe control unit is further configured to calculate the blended positionindicator based on a user location determined to be within the firstrange profile, the overlapping range profile, or the second rangeprofile.
 8. The system as claimed in claim 1 wherein the control unit isfurther configured to: identify the first sensor reading for capturingthe gesture by a first sensor; identify the second sensor reading forcapturing the gesture by a second sensor different from the firstsensor; and calculate the blended position indicator for combining thegesture captured by the first sensor and the gesture captured by thesecond sensor.
 9. The system as claimed in claim 1 wherein the controlunit is further configured to: determine an overlapping range profileinvolving the first range profile and the second range profile;calculate a first vector based on an elbow position and a hand positionfor representing the gesture made in the overlapping range profile;calculate a second vector based on the hand position and a fingertipposition for representing the gesture made in the overlapping rangeprofile; and calculate the blended position indicator based on theoverlapping range profile, the first vector, and the second vector. 10.The system as claimed in claim 1 wherein the control unit is furtherconfigured to: determine a first appendage orientation based on a firstsensor frame; determine a second appendage orientation based on a secondsensor frame; and calculate the blended position indicator based on afirst origin point, a known terminal point, a second origin point, thefirst appendage orientation, and the second appendage orientation.
 11. Amethod of operation of an electronic system comprising: identifying,with a control unit, a first sensor reading for capturing a gesturedirected at a display interface using a first range profile; identifyinga second sensor reading for capturing the gesture directed at thedisplay interface using a second range profile; calculating a blendedposition indicator based on the first sensor reading, the second sensorreading, or a combination thereof; and communicating, with acommunication interface coupled to the control unit, the blendedposition indicator by generating a cursor at the blended positionindicator.
 12. The method as claimed in claim 11 further comprising:determining an overlapping range profile involving the first rangeprofile and the second range profile; identifying the first sensorreading for capturing the gesture made within the overlapping rangeprofile; identifying the second sensor reading for capturing the gesturemade within the overlapping range profile; and calculating the blendedposition indicator based on the overlapping range profile, the firstsensor reading, and the second sensor reading.
 13. The method as claimedin claim 11 further comprising: determining a first origin point and aknown terminal point based on a first sensor frame; determining a secondorigin point based on a second sensor frame; calculating an inferredterminal point based on the first origin point, the known terminalpoint, and the second origin point; and calculating the blended positionindicator based on the first origin point, the known terminal point, thesecond origin point, and the inferred terminal point.
 14. The method asclaimed in claim 11 further comprising: calculating a first weightassociated with the first sensor reading based on a first sensorcharacteristic; calculating a second weight associated with the secondsensor reading based on a second sensor characteristic; and calculatingthe blended position indicator by applying the first weight to a firstposition indicator and applying the second weight to a second positionindicator.
 15. The method as claimed in claim 11 further comprising:calculating a first vector for representing the gesture directed at thedisplay interface; calculating a second vector for representing thegesture directed at the display interface; and calculating the blendedposition indicator based on the first vector and the second vector. 16.A non-transitory computer readable medium including instructions forexecution, comprising: identifying a first sensor reading for capturinga gesture directed at a display interface using a first range profile;identifying a second sensor reading for capturing the gesture directedat the display interface using a second range profile; calculating ablended position indicator based on the first sensor reading, the secondsensor reading, or a combination thereof; and communicating the blendedposition indicator by generating a cursor at the blended positionindicator.
 17. The non-transitory computer readable medium as claimed inclaim 16 further comprising: determining an overlapping range profileinvolving the first range profile and the second range profile;identifying the first sensor reading for capturing the gesture madewithin the overlapping range profile; identifying the second sensorreading for capturing the gesture made within the overlapping rangeprofile; and calculating the blended position indicator based on theoverlapping range profile, the first sensor reading, and the secondsensor reading.
 18. The non-transitory computer readable medium asclaimed in claim 16 further comprising: determining a first origin pointand a known terminal point based on a first sensor frame; determining asecond origin point based on a second sensor frame; calculating aninferred terminal point based on the first origin point, the knownterminal point, and the second origin point; and calculating the blendedposition indicator based on the first origin point, the known terminalpoint, the second origin point, and the inferred terminal point.
 19. Thenon-transitory computer readable medium as claimed in claim 16 furthercomprising: calculating a first weight associated with the first sensorreading based on a first sensor characteristic; calculating a secondweight associated with the second sensor reading based on a secondsensor characteristic; and calculating the blended position indicator byapplying the first weight to a first position indicator and applying thesecond weight to a second position indicator.
 20. The non-transitorycomputer readable medium as claimed in claim 16 further comprising:calculating a first vector for representing the gesture directed at thedisplay interface; calculating a second vector for representing thegesture directed at the display interface; and calculating the blendedposition indicator based on the first vector and the second vector.